home *** CD-ROM | disk | FTP | other *** search
- /* ANSI C code generated by SmallEiffel. */
- /*
- -- SmallEiffel -- Release (- 0.97) -- FRANCE
- -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN
- -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr
- -- CRIN (Centre de Recherche en Informatique de Nancy)
- -- FRANCE
- */
- #include "compile_to_c.h"
- void rT214compile_to_c(T214 *C){
- int _i=0;
- /*(IRF3*/(((T40*)oRBC27cpp)->_check_assertion_mode)=(/*(IRF4*/(T0 *)ms1270/*)*/);
- /*)*//*IF*/if (((int)(C)->_list)) {
- rT40put_string((T40*)oRBC27cpp,(T0 *)ms775);
- rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1270/*)*/);
- rT40put_string((T40*)oRBC27cpp,(T0 *)ms776);
- rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1270/*)*/);
- rT40put_string((T40*)oRBC27cpp,(T0 *)ms777);
- _i=1;
- while (!((_i)>(((T158*)(C)->_list)->_upper))) {
- rT64compile_to_c((T64*)rT158item((T158*)(C)->_list,_i));
- _i=(_i)+(1);
- }
- rT40put_string((T40*)oRBC27cpp,(T0 *)ms783);
- rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms1270/*)*/);
- rT40put_string((T40*)oRBC27cpp,(T0 *)ms784);
- }
- /*FI*/}
- void rT214copy(T214 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- void rT214make(T214 *C,T0 * a1,T0 * a2,T0* a3){
- C->_start_position=a1;
- C->_header_comment=a2;
- C->_list=a3;
- }
- int rT75is_static(T75 *C){
- int R=0;
- R=1;
- C->_static_value_mem=rT75to_integer(C);
- return R;
- }
- int rT75static_value(T75 *C){
- int R=0;
- R=(C)->_static_value_mem;
- return R;
- }
- T0 * rT75to_runnable(T75 *C,T0 * a1){
- T0 * R=NULL;
- /*IF*/if (!((C)->_current_type)) {
- C->_current_type=a1;
- R=(T0 *)C;
- }
- else {
- R=rT75clone(C,(T0 *)C);
- /*(IRF3*/(((T75*)R)->_current_type)=(a1);
- /*)*/}
- /*FI*/return R;
- }
- void rT75error(/*C*/T0 * a1,T0* a2){
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(a1);
- rT45error((T45*)oRBC27eh,a2);
- }
- T0 * rT75add_comment(T75 *C,T0 * a1){
- T0 * R=NULL;
- /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
- R=(T0 *)C;
- }
- else {
- {T220 *n=((T220*)new(220));
- rT220make(n,(T0 *)C,a1);
- R=(T0 *)n;}}
- /*FI*/return R;
- }
- int ofBC75result_type=0;
- T0*oRBC75result_type;
- T0 * rT75result_type(/*C*/void){
- T0 * R=NULL;
- if (ofBC75result_type==0){
- ofBC75result_type=1;
- {T109 *n=((T109*)new(109));
- rT109make(n,NULL);
- R=(T0 *)n;}
- oRBC75result_type=R;}
- return oRBC75result_type;}
- T0* rT75clone(T75 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*FI*/return R;
- }
- void rT75compile_to_c(T75 *C){
- rT40put_character((T40*)oRBC27cpp,'\47');
- /*IF*/if ((rT3is_letter((C)->_value))||(rT3is_digit((C)->_value))) {
- rT40put_character((T40*)oRBC27cpp,(C)->_value);
- }
- else {
- rT40put_character((T40*)oRBC27cpp,'\134');
- rT40put_integer((T40*)oRBC27cpp,rT2to_octal(((unsigned char)(C)->_value)));
- }
- /*FI*/rT40put_character((T40*)oRBC27cpp,'\47');
- }
- int rT75to_integer(T75 *C){
- int R=0;
- R=((unsigned char)(C)->_value);
- return R;
- }
- T0 * rT75written_in(T75 *C){
- T0 * R=NULL;
- T0 * _sp=NULL;
- _sp=(C)->_start_position;
- /*IF*/if (((int)_sp)) {
- R=((T46*)_sp)->_base_class_name;
- }
- /*FI*/return R;
- }
- void rT75copy(T75 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- int rT75is_a(T75 *C,T0 * a1){
- int R=0;
- R=XrT58is_a(rT109run_type((T109*)rT75result_type()),XrT58run_type(XrT68result_type(a1)));
- /*IF*/if (!(R)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position((C)->_start_position);
- rT75error(XrT68start_position(a1),(T0 *)ms1261);
- }
- /*FI*/return R;
- }
- void rT75make(T75 *C,T0 * a1,char a2,int a3){
- C->_start_position=a1;
- C->_value=a2;
- /*(IRF3*/((C)->_pretty_print_mode)=(a3);
- /*)*/}
- int rT51a_constant(T51 *C){
- int R=0;
- T0 * _fn=NULL;
- T0 * _e_current=NULL;
- /*IF*/if (rT51a_identifier(C)) {
- R=1;
- _fn=rT69to_feature_name((T69*)rT51tmp_name());
- {T89 *n=((T89*)new(89));
- rT89make(n,XrT67start_position(_fn),0);
- _e_current=(T0 *)n;}
- {T163 *n=((T163*)new(163));
- rT163make(n,_e_current,_fn);
- C->_last_expression=(T0 *)n;}}
- else if (rT51a_character_constant(C)) {
- R=1;
- C->_last_expression=(C)->_last_character_constant;
- }
- else if (rT51a_integer_constant(C)) {
- R=1;
- C->_last_expression=(C)->_last_integer_constant;
- }
- /*FI*/return R;
- }
- int rT51a_conditional(T51 *C){
- int R=0;
- T0 * _ifthenelse=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms353)) {
- R=1;
- {T218 *n=((T218*)new(218));
- /*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
- /*)*/_ifthenelse=(T0 *)n;}
- rT51a_then_part_list(C,_ifthenelse);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms107)) {
- /*(IRF3*/(((T218*)_ifthenelse)->_else_compound)=(rT51a_compound2(C,(T0 *)ms359,(T0 *)ms121));
- /*)*/}
- else {
- /*IF*/if (!(rT51a_keyword(C,(T0 *)ms121))) {
- rT51wcp(C,(T0 *)ms360);
- }
- /*FI*/}
- /*FI*/C->_last_instruction=_ifthenelse;
- }
- /*FI*/return R;
- }
- int rT51a_boolean_constant(T51 *C){
- int R=0;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms160)) {
- {T73 *n=((T73*)new(73));
- /*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
- /*)*/C->_last_boolean_constant=(T0 *)n;}R=1;
- }
- else if (rT51a_keyword(C,(T0 *)ms161)) {
- {T74 *n=((T74*)new(74));
- /*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
- /*)*/C->_last_boolean_constant=(T0 *)n;}R=1;
- }
- /*FI*/return R;
- }
- int rT51a_then_part(T51 *C,T0 * a1){
- int R=0;
- T0 * _expression=NULL;
- /*IF*/if (rT51a_expression(C)) {
- R=1;
- _expression=XrT68add_comment((C)->_last_expression,rT51get_comments(C));
- /*IF*/if (!(rT51a_keyword(C,(T0 *)ms104))) {
- rT51wcp(C,(T0 *)ms354);
- }
- /*FI*/rT218add_if_then((T218*)a1,_expression,rT51a_compound1(C,(T0 *)ms355));
- }
- /*FI*/return R;
- }
- void rT51a_then_part_list(T51 *C,T0 * a1){
- /*IF*/if (!(rT51a_then_part(C,a1))) {
- rT51fcp(C,(T0 *)ms356);
- }
- /*FI*/while (!(!(rT51a_keyword(C,(T0 *)ms357)))) {
- /*IF*/if (!(rT51a_then_part(C,a1))) {
- rT51fcp(C,(T0 *)ms358);
- }
- /*FI*/}
- }
- T0 * rT51get_comments(T51 *C){
- T0 * R=NULL;
- /*IF*/if (((int)(C)->_last_comments)) {
- R=(C)->_last_comments;
- C->_last_comments=NULL;
- }
- /*FI*/return R;
- }
- int rT51a_parent(T51 *C){
- int R=0;
- int _old_column=0;
- int _old_line=0;
- /*IF*/if (rT51a_class_type(C)) {
- R=1;
- /*IF*/if (rT7is_equal((T7*)((T48*)rT51current_class_name(C))->_to_string,((T48*)XrT58base_class_name((C)->_last_class_type))->_to_string)) {
- rT51error(XrT58start_position((C)->_last_class_type),(T0 *)ms225);
- }
- /*FI*/{T118 *n=((T118*)new(118));
- rT118make(n,(C)->_last_class_type);
- C->_last_parent=(T0 *)n;}
- /*IF*/if (rT51a_keyword(C,(T0 *)ms228)) {
- rT51a_rename_list(C);
- /*IF*/if (((C)->_cc)==('\73')) {
- rT51wcp(C,(T0 *)ms232);
- C->_ok=rT51skip1(C,'\73');
- }
- /*FI*/}
- /*FI*/rT51a_new_export_list(C);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms243)) {
- rT51a_undefine_list(C);
- }
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms244)) {
- rT51a_redefine_list(C);
- }
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms245)) {
- rT51a_select_list(C);
- }
- /*FI*/_old_line=(C)->_line;
- _old_column=(C)->_column;
- /*IF*/if (((((rT51a_keyword(C,(T0 *)ms246))||(rT51a_keyword(C,(T0 *)ms247)))||(rT51a_keyword(C,(T0 *)ms248)))||(rT51a_keyword(C,(T0 *)ms249)))||(rT51a_keyword(C,(T0 *)ms250))) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(rT51pos(_old_line,_old_column));
- rT51fatal_error((T0 *)ms251);
- }
- /*FI*/C->_ok=rT51a_keyword(C,(T0 *)ms121);
- }
- /*FI*/return R;
- }
- void rT51a_parent_list(T51 *C,T0 * a1,T0 * a2){
- T0* _list=NULL;
- while (!(!(rT51a_parent(C)))) {
- /*IF*/if (!(_list)) {
- _list=ma(130,0,1,(C)->_last_parent);
- }
- else {
- rT130add_last((T130*)_list,(C)->_last_parent);
- }
- /*FI*/C->_ok=rT51skip1(C,'\73');
- /*(IRF3*/(((T118*)(C)->_last_parent)->_comment)=(rT51get_comments(C));
- /*)*/}
- /*IF*/if ((((int)a2))||(((int)_list))) {
- rT50set_parent_list((T50*)(C)->_last_base_class,a1,a2,_list);
- }
- /*FI*/}
- int rT51a_when_part(T51 *C,T0 * a1){
- int R=0;
- T0 * _constant=NULL;
- T0 * _e_when=NULL;
- int _state=0;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms365)) {
- R=1;
- {T226 *n=((T226*)new(226));
- rT226make(n,rT51pos((C)->_start_line,(C)->_start_column),rT51get_comments(C));
- _e_when=(T0 *)n;}
- while (!((_state)>(3))) {
- {int iv1=_state;
- if (0 == iv1) goto l119;
- goto l120;
- l119: ;
- /*IF*/if (rT51a_constant(C)) {
- _constant=(C)->_last_expression;
- _state=1;
- }
- else if (rT51a_keyword(C,(T0 *)ms104)) {
- /*IF*/if (((int)_constant)) {
- rT226add_value((T226*)_e_when,_constant);
- }
- /*FI*//*(IRF3*/(((T226*)_e_when)->_compound)=(rT51a_compound1(C,(T0 *)ms366));
- /*)*/rT225add_when((T225*)a1,_e_when);
- _state=4;
- }
- else if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms234);
- C->_ok=rT51skip1(C,'\54');
- }
- else {
- rT51fcp(C,(T0 *)ms367);
- _state=4;
- }
- /*FI*/goto l118;
- l120: ;
- if (1 == iv1) goto l121;
- goto l122;
- l121: ;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms104)) {
- /*IF*/if (((int)_constant)) {
- rT226add_value((T226*)_e_when,_constant);
- }
- /*FI*//*(IRF3*/(((T226*)_e_when)->_compound)=(rT51a_compound1(C,(T0 *)ms368));
- /*)*/rT225add_when((T225*)a1,_e_when);
- _state=4;
- }
- else if (rT51skip2(C,'\56','\56')) {
- _state=2;
- }
- else if (rT51skip1(C,'\54')) {
- rT226add_value((T226*)_e_when,_constant);
- _constant=NULL;
- _state=0;
- }
- else {
- rT51fcp(C,(T0 *)ms367);
- _state=4;
- }
- /*FI*/goto l118;
- l122: ;
- if (2 == iv1) goto l123;
- goto l124;
- l123: ;
- /*IF*/if (rT51a_constant(C)) {
- rT226add_slice((T226*)_e_when,_constant,(C)->_last_expression);
- _constant=NULL;
- _state=3;
- }
- else {
- rT51fcp(C,(T0 *)ms367);
- _state=4;
- }
- /*FI*/goto l118;
- l124: ;
- /*IF*/if (rT51skip1(C,'\54')) {
- _state=0;
- }
- else if (rT51a_keyword(C,(T0 *)ms104)) {
- /*(IRF3*/(((T226*)_e_when)->_compound)=(rT51a_compound1(C,(T0 *)ms369));
- /*)*/rT225add_when((T225*)a1,_e_when);
- _state=4;
- }
- else if (rT51a_constant(C)) {
- _constant=(C)->_last_expression;
- rT51warning(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms217);
- _state=1;
- }
- else {
- rT51fcp(C,(T0 *)ms367);
- _state=4;
- }
- /*FI*/ l118: ;
- }
- }
- }
- /*FI*/return R;
- }
- void rT51a_select_list(T51 *C){
- /*IF*/if (rT51a_feature_list(C)) {
- rT118set_select((T118*)(C)->_last_parent,(C)->_last_feature_list);
- }
- /*FI*/}
- int rT51a_unary(T51 *C){
- int R=0;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms84)) {
- {T66 *n=((T66*)new(66));
- rT66make(n,(T0 *)ms84,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_prefix=(T0 *)n;}
- R=1;
- }
- else if (rT51skip1(C,'\53')) {
- {T66 *n=((T66*)new(66));
- rT66make(n,(T0 *)ms86,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_prefix=(T0 *)n;}
- R=1;
- }
- else if (rT51skip1(C,'\55')) {
- {T66 *n=((T66*)new(66));
- rT66make(n,(T0 *)ms87,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_prefix=(T0 *)n;}
- R=1;
- }
- /*FI*/return R;
- }
- int rT51a_rename_pair(T51 *C){
- int R=0;
- T0 * _rename_pair=NULL;
- T0 * _name1=NULL;
- /*IF*/if (rT51a_identifier(C)) {
- _name1=rT69to_feature_name((T69*)rT51tmp_name());
- /*IF*/if (rT51a_keyword(C,(T0 *)ms229)) {
- /*IF*/if (rT51a_identifier(C)) {
- R=1;
- /*IF*/if (rT7is_equal((T7*)((T69*)rT51tmp_name())->_to_string,XrT67to_string(_name1))) {
- rT51warning(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms230);
- }
- else {
- {T119 *n=((T119*)new(119));
- rT119make(n,_name1,rT69to_feature_name((T69*)rT51tmp_name()));
- _rename_pair=(T0 *)n;}
- rT118add_rename((T118*)(C)->_last_parent,_rename_pair);
- }
- /*FI*/}
- else {
- rT51fcp(C,(T0 *)ms231);
- }
- /*FI*/}
- else {
- rT51go_back(C,XrT67start_position(_name1));
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51a_rename_list(T51 *C){
- while (!(!(rT51a_rename_pair(C)))) {
- C->_ok=rT51skip1(C,'\54');
- }
- }
- T0 * rT51to_call(/*C*/T0 * a1,T0 * a2,T0 * a3){
- T0 * R=NULL;
- /*IF*/if (!(a2)) {
- R=a1;
- }
- else if (!(a3)) {
- {T163 *n=((T163*)new(163));
- rT163make(n,a1,a2);
- R=(T0 *)n;}}
- else if ((rT170count((T170*)a3))==(1)) {
- {T174 *n=((T174*)new(174));
- rT174make(n,a1,a2,a3);
- R=(T0 *)n;}}
- else {
- {T175 *n=((T175*)new(175));
- rT175make(n,a1,a2,a3);
- R=(T0 *)n;}}
- /*FI*/return R;
- }
- int rT51a_e10(T51 *C){
- int R=0;
- /*IF*/if (rT51a_strip(C)) {
- R=1;
- }
- else if (rT51skip1(C,'\50')) {
- R=1;
- /*IF*/if (rT51a_expression(C)) {
- /*IF*/if (rT51skip1(C,'\51')) {
- rT51a_r10(C,0,(C)->_last_expression,NULL,NULL);
- }
- else {
- rT51fcp(C,(T0 *)ms301);
- }
- /*FI*/}
- else {
- rT51fcp(C,(T0 *)ms302);
- }
- /*FI*/}
- else if (rT51a_manifest_constant(C)) {
- C->_last_expression=(C)->_last_manifest_constant;
- R=1;
- /*IF*/if (rT51skip1unless2(C,'\56','\56')) {
- rT51wcp(C,(T0 *)ms303);
- rT51a_after_a_dot(C,0,(C)->_last_expression);
- }
- /*FI*/}
- else if (rT51a_identifier(C)) {
- R=1;
- /*IF*/if (((((rT51a_result(C))||(rT51a_current(C)))||(rT51a_void(C)))||(rT51a_local_variable(C)))||(rT51a_argument(C))) {
- rT51a_r10(C,0,(C)->_last_expression,NULL,NULL);
- }
- else {
- rT51a_function_call(C);
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51a_assignment_aux(T51 *C,int a1){
- T0 * _rhs=NULL;
- T0 * _writable=NULL;
- /*IF*/if (rT51a_current(C)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT68start_position((C)->_last_expression));
- rT51fatal_error((T0 *)ms391);
- }
- else if (rT51a_void(C)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(rT69start_position((T69*)rT51tmp_name()));
- rT51fatal_error((T0 *)ms392);
- }
- else if (rT51a_argument(C)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT68start_position((C)->_last_expression));
- rT51fatal_error((T0 *)ms393);
- }
- else {
- /*IF*/if (rT7same_as((T7*)(T0 *)ms293,((T69*)rT51tmp_name())->_to_string)) {
- /*IF*/if (!((C)->_function_type)) {
- rT51error(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms394);
- }
- /*FI*/_writable=rT69to_e_result((T69*)rT51tmp_name());
- }
- else if (rT51a_local_variable(C)) {
- _writable=(C)->_last_expression;
- }
- else {
- _writable=rT69to_feature_name((T69*)rT51tmp_name());
- }
- /*FI*//*IF*/if (rT51a_expression(C)) {
- _rhs=(C)->_last_expression;
- /*IF*/if (a1) {
- {T248 *n=((T248*)new(248));
- rT248make(n,_writable,_rhs);
- C->_last_instruction=(T0 *)n;}}
- else {
- {T249 *n=((T249*)new(249));
- rT249make(n,_writable,_rhs);
- C->_last_instruction=(T0 *)n;}}
- /*FI*/}
- else {
- rT51fcp(C,(T0 *)ms395);
- }
- /*FI*/}
- /*FI*/}
- int rT51a_assignment_or_call(T51 *C){
- int R=0;
- /*IF*/if ((rT51skip1(C,'\50'))&&(rT51a_expression(C))) {
- R=1;
- /*IF*/if (rT51skip1(C,'\51')) {
- rT51a_r10(C,1,(C)->_last_expression,NULL,NULL);
- }
- else {
- rT51fcp(C,(T0 *)ms390);
- }
- /*FI*/}
- else if (rT51a_identifier(C)) {
- R=1;
- /*IF*/if (rT51skip2(C,'\72','\75')) {
- rT51a_assignment_aux(C,1);
- }
- else if (rT51skip2(C,'\77','\75')) {
- rT51a_assignment_aux(C,0);
- }
- else if ((((rT51a_current(C))||(rT51a_result(C)))||(rT51a_local_variable(C)))||(rT51a_argument(C))) {
- rT51a_r10(C,1,(C)->_last_expression,NULL,NULL);
- }
- else {
- rT51a_procedure_call(C);
- }
- /*FI*/}
- /*FI*/return R;
- }
- T0* rT51a_assertion(T51 *C){
- T0* R=NULL;
- int _state=0;
- T0 * _assertion=NULL;
- T0 * _expression=NULL;
- T0 * _tag=NULL;
- while (!((_state)>(3))) {
- {int iv1=_state;
- if (0 == iv1) goto l126;
- goto l127;
- l126: ;
- /*IF*/if (((C)->_cc)==('\73')) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- /*IF*/if (((int)(C)->_last_comments)) {
- {T64 *n=((T64*)new(64));
- rT64make(n,NULL,NULL,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/}
- /*FI*/}
- else if (rT51a_tag_mark(C)) {
- _tag=(C)->_last_tag_mark;
- _state=1;
- }
- else if (rT51a_expression(C)) {
- _expression=(C)->_last_expression;
- _state=2;
- }
- else {
- _state=4;
- }
- /*FI*/goto l125;
- l127: ;
- if (1 == iv1) goto l128;
- goto l129;
- l128: ;
- /*IF*/if (rT51skip1(C,'\73')) {
- {T64 *n=((T64*)new(64));
- rT64make(n,_tag,NULL,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_state=0;
- }
- else if (rT51a_tag_mark(C)) {
- {T64 *n=((T64*)new(64));
- rT64make(n,_tag,NULL,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_tag=(C)->_last_tag_mark;
- }
- else if (rT51a_expression(C)) {
- _expression=(C)->_last_expression;
- _state=3;
- }
- else {
- {T64 *n=((T64*)new(64));
- rT64make(n,_tag,NULL,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_state=4;
- }
- /*FI*/goto l125;
- l129: ;
- if (2 == iv1) goto l130;
- goto l131;
- l130: ;
- /*IF*/if (rT51skip1(C,'\73')) {
- {T64 *n=((T64*)new(64));
- rT64make(n,NULL,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_state=0;
- }
- else if (rT51a_tag_mark(C)) {
- {T64 *n=((T64*)new(64));
- rT64make(n,NULL,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_tag=(C)->_last_tag_mark;
- _state=1;
- }
- else if (rT51a_expression(C)) {
- {T64 *n=((T64*)new(64));
- rT64make(n,NULL,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_expression=(C)->_last_expression;
- _state=2;
- }
- else {
- {T64 *n=((T64*)new(64));
- rT64make(n,NULL,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_state=4;
- }
- /*FI*/goto l125;
- l131: ;
- /*IF*/if (rT51skip1(C,'\73')) {
- {T64 *n=((T64*)new(64));
- rT64make(n,_tag,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_state=0;
- }
- else if (rT51a_tag_mark(C)) {
- {T64 *n=((T64*)new(64));
- rT64make(n,_tag,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_tag=(C)->_last_tag_mark;
- _state=1;
- }
- else if (rT51a_expression(C)) {
- {T64 *n=((T64*)new(64));
- rT64make(n,_tag,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_expression=(C)->_last_expression;
- _state=2;
- }
- else {
- {T64 *n=((T64*)new(64));
- rT64make(n,_tag,_expression,rT51get_comments(C));
- _assertion=(T0 *)n;}
- /*IF*/if (!(R)) {
- R=ma(158,0,1,_assertion);
- }
- else {
- rT158add_last((T158*)R,_assertion);
- }
- /*FI*/_state=4;
- }
- /*FI*/ l125: ;
- }
- }
- return R;
- }
- void rT51a_formal_arg_list(T51 *C){
- int _state=0;
- T0* _list=NULL;
- T0 * _declaration=NULL;
- T0* _name_list=NULL;
- T0 * _name=NULL;
- T0 * _sp=NULL;
- C->_arguments=NULL;
- while (!((_state)>(5))) {
- {int iv1=_state;
- if (0 == iv1) goto l133;
- goto l134;
- l133: ;
- /*IF*/if (rT51skip1(C,'\50')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- _state=1;
- }
- else {
- _state=6;
- }
- /*FI*/goto l132;
- l134: ;
- if (1 == iv1) goto l135;
- goto l136;
- l135: ;
- /*IF*/if (rT51a_identifier(C)) {
- _name=rT69to_decl_name((T69*)rT51tmp_name());
- _state=2;
- }
- else if (rT51skip1(C,'\51')) {
- _state=6;
- }
- else {
- _state=7;
- }
- /*FI*/goto l132;
- l136: ;
- if (2 == iv1) goto l137;
- goto l138;
- l137: ;
- /*IF*/if (rT51skip1(C,'\72')) {
- /*IF*/if (((int)_name_list)) {
- rT141add_last((T141*)_name_list,_name);
- _name=NULL;
- }
- /*FI*/_state=4;
- }
- else {
- C->_ok=rT51skip1(C,'\54');
- /*IF*/if (!(_name_list)) {
- _name_list=ma(141,0,1,_name);
- }
- else {
- rT141add_last((T141*)_name_list,_name);
- }
- /*FI*/_name=NULL;
- _state=3;
- }
- /*FI*/goto l132;
- l138: ;
- if (3 == iv1) goto l139;
- goto l140;
- l139: ;
- /*IF*/if (rT51a_identifier(C)) {
- _name=rT69to_decl_name((T69*)rT51tmp_name());
- _state=2;
- }
- else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\73'))) {
- rT51wcp(C,(T0 *)ms258);
- C->_ok=(rT51skip1(C,'\54'))||(rT51skip1(C,'\73'));
- }
- else {
- _state=7;
- }
- /*FI*/goto l132;
- l140: ;
- if (4 == iv1) goto l141;
- goto l142;
- l141: ;
- /*IF*/if (rT51a_type(C)) {
- /*IF*/if (((int)_name_list)) {
- {T142 *n=((T142*)new(142));
- rT142make(n,_name_list,(C)->_last_type);
- _declaration=(T0 *)n;}_name_list=NULL;
- }
- else {
- {T94 *n=((T94*)new(94));
- rT94make(n,_name,(C)->_last_type);
- _declaration=(T0 *)n;}_name=NULL;
- }
- /*FI*//*IF*/if (!(_list)) {
- _list=ma(143,0,1,_declaration);
- }
- else {
- XrT143add_last(_list,_declaration);
- }
- /*FI*/_declaration=NULL;
- _state=5;
- }
- else {
- _state=7;
- }
- /*FI*/goto l132;
- l142: ;
- /*IF*/if (rT51skip1(C,'\51')) {
- _state=6;
- }
- else if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms259);
- C->_ok=rT51skip1(C,'\54');
- _state=1;
- }
- else {
- C->_ok=rT51skip1(C,'\73');
- _state=1;
- }
- /*FI*/ l132: ;
- }
- }
- /*IF*/if ((_state)==(7)) {
- rT51fcp(C,(T0 *)ms260);
- }
- else if ((((int)_sp))&&(!(_list))) {
- rT51warning(_sp,(T0 *)ms261);
- }
- else if (((int)_sp)) {
- {T92 *n=((T92*)new(92));
- rT92make(n,_sp,_list);
- C->_arguments=(T0 *)n;}
- /*(IRF3*/(((T136*)oRBC51tmp_feature)->_arguments)=((C)->_arguments);
- /*)*/}
- /*FI*/}
- void rT51a_undefine_list(T51 *C){
- /*IF*/if (rT51a_feature_list(C)) {
- rT118set_undefine((T118*)(C)->_last_parent,(C)->_last_feature_list);
- }
- /*FI*/}
- int rT51a_prefix(T51 *C){
- int R=0;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms81)) {
- R=1;
- /*IF*/if (((C)->_cc)==('\42')) {
- rT51next_char(C);
- }
- else {
- rT51wcp(C,(T0 *)ms83);
- }
- /*FI*//*IF*/if (rT51a_unary(C)) {
- }
- else if (rT51a_free_operator(C)) {
- C->_last_prefix=rT69to_prefix_name((T69*)rT51tmp_operator());
- }
- else {
- rT51fcp(C,(T0 *)ms88);
- }
- /*FI*//*IF*/if (!(rT51skip1(C,'\42'))) {
- rT51wcp(C,(T0 *)ms89);
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51a_formal_generic_list(T51 *C){
- int _state=0;
- T0* _list=NULL;
- T0 * _fga=NULL;
- T0 * _constraint=NULL;
- T0 * _name=NULL;
- T0 * _sp=NULL;
- C->_formal_generic_list=NULL;
- while (!((_state)>(4))) {
- {int iv1=_state;
- if (0 == iv1) goto l144;
- goto l145;
- l144: ;
- /*IF*/if (rT51skip1(C,'\133')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- _state=1;
- }
- else {
- _state=5;
- }
- /*FI*/goto l143;
- l145: ;
- if (1 == iv1) goto l146;
- goto l147;
- l146: ;
- /*IF*/if (rT51a_base_class_name(C)) {
- _name=(C)->_last_class_name;
- _state=2;
- }
- else {
- _state=6;
- }
- /*FI*/goto l143;
- l147: ;
- if (2 == iv1) goto l148;
- goto l149;
- l148: ;
- /*IF*/if (rT51skip2(C,'\55','\76')) {
- _state=4;
- }
- else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
- {T84 *n=((T84*)new(84));
- rT84make(n,_name,_constraint);
- _fga=(T0 *)n;}
- _name=NULL;
- _constraint=NULL;
- /*IF*/if (!(_list)) {
- _list=ma(86,0,1,_fga);
- }
- else {
- rT86add_last((T86*)_list,_fga);
- }
- /*FI*/_fga=NULL;
- /*IF*/if (rT51skip1(C,'\54')) {
- _state=1;
- }
- else {
- C->_ok=rT51skip1(C,'\135');
- _state=5;
- }
- /*FI*/}
- else {
- _state=6;
- }
- /*FI*/goto l143;
- l149: ;
- if (3 == iv1) goto l150;
- goto l151;
- l150: ;
- /*IF*/if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
- {T84 *n=((T84*)new(84));
- rT84make(n,_name,_constraint);
- _fga=(T0 *)n;}
- _name=NULL;
- _constraint=NULL;
- /*IF*/if (!(_list)) {
- _list=ma(86,0,1,_fga);
- }
- else {
- rT86add_last((T86*)_list,_fga);
- }
- /*FI*/_fga=NULL;
- /*IF*/if (rT51skip1(C,'\54')) {
- _state=1;
- }
- else {
- C->_ok=rT51skip1(C,'\135');
- _state=5;
- }
- /*FI*/}
- else {
- _state=6;
- }
- /*FI*/goto l143;
- l151: ;
- /*IF*/if (rT51a_class_type(C)) {
- _constraint=(C)->_last_class_type;
- _state=3;
- }
- else {
- rT51fcp(C,(T0 *)ms219);
- _state=6;
- }
- /*FI*/ l143: ;
- }
- }
- /*IF*/if ((_state)==(6)) {
- }
- else if ((((int)_sp))&&(!(_list))) {
- rT51warning(_sp,(T0 *)ms220);
- }
- else if (((int)_sp)) {
- {T85 *n=((T85*)new(85));
- rT85make(n,_sp,_list);
- C->_formal_generic_list=(T0 *)n;}
- /*(IRF3*/(((T50*)(C)->_last_base_class)->_formal_generic_list)=((C)->_formal_generic_list);
- /*)*/}
- /*FI*/}
- void rT51fatal_error(/*C*/T0* a1){
- rT45fatal_error((T45*)oRBC27eh,a1);
- }
- void rT51a_function_call(T51 *C){
- T0 * _e_current=NULL;
- T0 * _fn=NULL;
- _fn=rT69to_feature_name((T69*)rT51tmp_name());
- {T89 *n=((T89*)new(89));
- rT89make(n,XrT67start_position(_fn),0);
- _e_current=(T0 *)n;}
- rT51a_r10(C,0,_e_current,_fn,rT51a_actuals(C));
- }
- int rT51a_keyword(T51 *C,T0* a1){
- int R=0;
- int _i=0;
- C->_start_line=(C)->_line;
- C->_start_column=(C)->_column;
- while (!(((_i)==(((T7*)a1)->_count))||(!(rT3same_as((C)->_cc,rT7item((T7*)a1,(_i)+(1))))))) {
- _i=(_i)+(1);
- rT51next_char(C);
- }
- /*IF*/if ((_i)==(((T7*)a1)->_count)) {
- {int iv1=(C)->_cc;
- if ((9 <= iv1) && (iv1<= 10)) goto l153;
- if (32 == iv1) goto l153;
- if (45 == iv1) goto l153;
- goto l154;
- l153: ;
- R=1;
- rT51skip_comments(C);
- goto l152;
- l154: ;
- if ((48 <= iv1) && (iv1<= 57)) goto l155;
- if ((65 <= iv1) && (iv1<= 90)) goto l155;
- if (95 == iv1) goto l155;
- if ((97 <= iv1) && (iv1<= 122)) goto l155;
- goto l156;
- l155: ;
- while (!((_i)==(0))) {
- rT51prev_char(C);
- _i=(_i)-(1);
- }
- goto l152;
- l156: ;
- R=1;
- l152: ;
- }
- }
- else {
- while (!((_i)==(0))) {
- rT51prev_char(C);
- _i=(_i)-(1);
- }
- }
- /*FI*/return R;
- }
- int rT51a_loop(T51 *C){
- int R=0;
- T0* _al=NULL;
- T0 * _hc=NULL;
- T0 * _lb=NULL;
- T0 * _ue=NULL;
- T0 * _vc=NULL;
- T0 * _ic=NULL;
- T0 * _i=NULL;
- T0 * _e_loop=NULL;
- T0 * _sp2=NULL;
- T0 * _sp=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms372)) {
- R=1;
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- _i=rT51a_compound1(C,(T0 *)ms373);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms374)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp2=(T0 *)n;}
- _hc=rT51get_comments(C);
- _al=rT51a_assertion(C);
- /*IF*/if ((((int)_hc))||(((int)_al))) {
- {T236 *n=((T236*)new(236));
- rT236make(n,_sp2,_hc,_al);
- _ic=(T0 *)n;}
- }
- /*FI*/}
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms375)) {
- /*IF*/if ((rT51a_tag_mark(C))&&(rT51a_expression(C))) {
- {T238 *n=((T238*)new(238));
- rT238make(n,(C)->_last_tag_mark,(C)->_last_expression,rT51get_comments(C));
- _vc=(T0 *)n;}}
- else if (rT51a_expression(C)) {
- {T239 *n=((T239*)new(239));
- rT239make(n,(C)->_last_expression,rT51get_comments(C));
- _vc=(T0 *)n;}}
- else {
- rT51wcp(C,(T0 *)ms376);
- }
- /*FI*/}
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms377)) {
- /*IF*/if (rT51a_expression(C)) {
- _ue=XrT68add_comment((C)->_last_expression,rT51get_comments(C));
- }
- else {
- rT51fcp(C,(T0 *)ms378);
- _ue=(C)->_last_expression;
- }
- /*FI*/}
- else {
- rT51fcp(C,(T0 *)ms379);
- _ue=(C)->_last_expression;
- }
- /*FI*//*IF*/if (((C)->_cc)==('\73')) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- }
- /*FI*//*IF*/if (!(rT51a_keyword(C,(T0 *)ms380))) {
- rT51wcp(C,(T0 *)ms381);
- }
- /*FI*/_lb=rT51a_compound2(C,(T0 *)ms382,(T0 *)ms121);
- {T235 *n=((T235*)new(235));
- rT235make(n,_sp,_i,_ic,_vc,_ue,_lb);
- _e_loop=(T0 *)n;}
- C->_last_instruction=_e_loop;
- }
- /*FI*/return R;
- }
- int rT51a_inspect(T51 *C){
- int R=0;
- T0 * _ec=NULL;
- T0 * _i=NULL;
- T0 * _spec=NULL;
- T0 * _sp=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms363)) {
- R=1;
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_expression(C)) {
- C->_last_expression=XrT68add_comment((C)->_last_expression,rT51get_comments(C));
- }
- else {
- rT51fcp(C,(T0 *)ms364);
- }
- /*FI*/{T225 *n=((T225*)new(225));
- rT225make(n,_sp,(C)->_last_expression);
- _i=(T0 *)n;}
- while (!(!(rT51a_when_part(C,_i)))) {
- }
- /*IF*/if (rT51a_keyword(C,(T0 *)ms107)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _spec=(T0 *)n;}
- _ec=rT51a_compound2(C,(T0 *)ms370,(T0 *)ms121);
- rT225set_else_compound((T225*)_i,_spec,_ec);
- }
- else if (!(rT51a_keyword(C,(T0 *)ms121))) {
- rT51wcp(C,(T0 *)ms371);
- }
- /*FI*/C->_last_instruction=_i;
- }
- /*FI*/return R;
- }
- int rT51a_instruction(T51 *C){
- int R=0;
- R=(((((((rT51a_check(C))||(rT51a_debug(C)))||(rT51a_conditional(C)))||(rT51a_retry(C)))||(rT51a_inspect(C)))||(rT51a_loop(C)))||(rT51a_creation(C)))||(rT51a_assignment_or_call(C));
- return R;
- }
- int rT51a_result(T51 *C){
- int R=0;
- /*IF*/if (rT7same_as((T7*)(T0 *)ms293,((T69*)rT51tmp_name())->_to_string)) {
- /*IF*/if (!((C)->_function_type)) {
- rT51error(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms294);
- }
- /*FI*/C->_last_expression=rT69to_e_result((T69*)rT51tmp_name());
- R=1;
- }
- /*FI*/return R;
- }
- void rT51a_new_export_list(T51 *C){
- int _state=0;
- T0 * _new_export_item=NULL;
- T0* _items=NULL;
- T0 * _clients=NULL;
- T0 * _sp=NULL;
- T0 * _export_list=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms233)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- while (!((_state)>(3))) {
- {int iv1=_state;
- if (0 == iv1) goto l158;
- goto l159;
- l158: ;
- /*IF*/if (((C)->_cc)==('\173')) {
- _clients=rT51a_clients(C);
- _state=1;
- }
- else if (((C)->_cc)==('\73')) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- }
- else {
- /*IF*/if (((int)_items)) {
- {T122 *n=((T122*)new(122));
- rT122make(n,_sp,_items);
- _export_list=(T0 *)n;}
- /*(IRF3*/(((T118*)(C)->_last_parent)->_export_list)=(_export_list);
- /*)*/}
- /*FI*/_state=4;
- }
- /*FI*/goto l157;
- l159: ;
- if (1 == iv1) goto l160;
- goto l161;
- l160: ;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms239)) {
- {T124 *n=((T124*)new(124));
- rT124make_all(n,_clients);
- _new_export_item=(T0 *)n;}
- /*IF*/if (!(_items)) {
- _items=ma(127,0,1,_new_export_item);
- }
- else {
- rT127add_last((T127*)_items,_new_export_item);
- }
- /*FI*/_state=2;
- }
- else {
- /*IF*/if (rT51a_feature_list(C)) {
- {T124 *n=((T124*)new(124));
- rT124make(n,_clients,(C)->_last_feature_list);
- _new_export_item=(T0 *)n;}
- /*IF*/if (!(_items)) {
- _items=ma(127,0,1,_new_export_item);
- }
- else {
- rT127add_last((T127*)_items,_new_export_item);
- }
- /*FI*/_state=2;
- }
- else {
- _state=3;
- }
- /*FI*/}
- /*FI*/goto l157;
- l161: ;
- if (2 == iv1) goto l162;
- goto l163;
- l162: ;
- /*IF*/if (rT51skip1(C,'\73')) {
- _state=0;
- }
- else if (((C)->_cc)==('\173')) {
- rT51wcp(C,(T0 *)ms242);
- _state=0;
- }
- else {
- /*IF*/if (((int)_items)) {
- {T122 *n=((T122*)new(122));
- rT122make(n,_sp,_items);
- _export_list=(T0 *)n;}
- /*(IRF3*/(((T118*)(C)->_last_parent)->_export_list)=(_export_list);
- /*)*/}
- /*FI*/_state=4;
- }
- /*FI*/goto l157;
- l163: ;
- rT51fcp(C,(T0 *)ms236);
- _state=4;
- l157: ;
- }
- }
- }
- /*FI*/}
- int rT51a_current(T51 *C){
- int R=0;
- /*IF*/if (rT7same_as((T7*)(T0 *)ms205,((T69*)rT51tmp_name())->_to_string)) {
- C->_last_expression=rT69to_e_current((T69*)rT51tmp_name());
- R=1;
- }
- /*FI*/return R;
- }
- int rT51a_retry(T51 *C){
- int R=0;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms361)) {
- /*IF*/if (!((C)->_in_rescue)) {
- rT51error(rT51pos((C)->_start_line,(C)->_start_column),(T0 *)ms362);
- }
- /*FI*/{T224 *n=((T224*)new(224));
- /*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
- /*)*/C->_last_instruction=(T0 *)n;}R=1;
- }
- /*FI*/return R;
- }
- int rT51a_integer_constant(T51 *C){
- int R=0;
- /*IF*/if (rT51skip1(C,'\53')) {
- /*IF*/if (!(rT51a_integer(C))) {
- rT51fcp(C,(T0 *)ms175);
- }
- else {
- R=1;
- }
- /*FI*/}
- else if (rT51skip1(C,'\55')) {
- /*IF*/if (!(rT51a_integer(C))) {
- rT51fcp(C,(T0 *)ms175);
- }
- else {
- C->_last_integer_constant=rT80_px45((T80*)(C)->_last_integer_constant);
- R=1;
- }
- /*FI*/}
- else {
- R=rT51a_integer(C);
- }
- /*FI*/return R;
- }
- int rT51a_integer(T51 *C){
- int R=0;
- int _value=0;
- int _state=0;
- /*IF*/if (rT3is_digit((C)->_cc)) {
- R=1;
- C->_start_line=(C)->_line;
- C->_start_column=(C)->_column;
- _value=rT3value((C)->_cc);
- while (!((_state)>(3))) {
- rT51next_char(C);
- {int iv1=_state;
- if (0 == iv1) goto l165;
- goto l166;
- l165: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l168;
- goto l169;
- l168: ;
- _value=((_value)*(10))+(rT3value((C)->_cc));
- goto l167;
- l169: ;
- if (95 == iv2) goto l170;
- goto l171;
- l170: ;
- _state=1;
- goto l167;
- l171: ;
- _state=4;
- l167: ;
- }
- goto l164;
- l166: ;
- if (1 == iv1) goto l172;
- goto l173;
- l172: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l175;
- goto l176;
- l175: ;
- _value=((_value)*(10))+(rT3value((C)->_cc));
- _state=2;
- goto l174;
- l176: ;
- rT51fcp(C,(T0 *)ms171);
- l174: ;
- }
- goto l164;
- l173: ;
- if (2 == iv1) goto l177;
- goto l178;
- l177: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l180;
- goto l181;
- l180: ;
- _value=((_value)*(10))+(rT3value((C)->_cc));
- _state=3;
- goto l179;
- l181: ;
- rT51fcp(C,(T0 *)ms171);
- l179: ;
- }
- goto l164;
- l178: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l183;
- goto l184;
- l183: ;
- _value=((_value)*(10))+(rT3value((C)->_cc));
- _state=0;
- goto l182;
- l184: ;
- rT51fcp(C,(T0 *)ms171);
- l182: ;
- }
- l164: ;
- }
- rT51skip_comments(C);
- {T80 *n=((T80*)new(80));
- rT80make(n,_value,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_integer_constant=(T0 *)n;}
- }
- }
- /*FI*/return R;
- }
- void rT51err_exp(/*C*/T0 * a1,T0* a2){
- T0* _msg=NULL;
- {T7 *n=((T7*)new(7));
- rT7make(n,0);
- _msg=(T0 *)n;}
- rT7append((T7*)_msg,(T0 *)ms283);
- rT7append((T7*)_msg,a2);
- rT7append((T7*)_msg,(T0 *)ms284);
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(a1);
- rT51fatal_error(_msg);
- }
- int rT51a_expression(T51 *C){
- int R=0;
- T0* _list=NULL;
- T0 * _sp=NULL;
- /*IF*/if (rT51skip2(C,'\74','\74')) {
- R=1;
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- while (!(!(rT51a_expression(C)))) {
- /*IF*/if (!(_list)) {
- _list=ma(81,0,1,(C)->_last_expression);
- }
- else {
- XrT81add_last(_list,(C)->_last_expression);
- }
- /*FI*/C->_ok=rT51skip1(C,'\54');
- }
- /*IF*/if (!(rT51skip2(C,'\76','\76'))) {
- rT51fcp(C,(T0 *)ms282);
- }
- /*FI*/{T160 *n=((T160*)new(160));
- rT160make(n,_sp,_list);
- C->_last_expression=(T0 *)n;}}
- else {
- R=rT51a_e0(C);
- }
- /*FI*/return R;
- }
- int rT51a_void(T51 *C){
- int R=0;
- /*IF*/if (rT7same_as((T7*)(T0 *)ms295,((T69*)rT51tmp_name())->_to_string)) {
- C->_last_expression=rT69to_e_void((T69*)rT51tmp_name());
- R=1;
- }
- /*FI*/return R;
- }
- void rT51a_procedure_call(T51 *C){
- T0 * _e_current=NULL;
- T0 * _fn=NULL;
- _fn=rT69to_feature_name((T69*)rT51tmp_name());
- {T89 *n=((T89*)new(89));
- rT89make(n,XrT67start_position(_fn),0);
- _e_current=(T0 *)n;}
- rT51a_r10(C,1,_e_current,_fn,rT51a_actuals(C));
- }
- T0* rT51a_external_name(T51 *C){
- T0* R=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms341)) {
- /*IF*/if (!(rT51a_manifest_string(C))) {
- rT51fcp(C,(T0 *)ms342);
- }
- else {
- R=((T76*)(C)->_last_manifest_string)->_to_string;
- }
- /*FI*/}
- /*FI*/return R;
- }
- T0 * rT51a_external(T51 *C){
- T0 * R=NULL;
- T0 * _external_lgg=NULL;
- /*IF*/if (!(rT51a_manifest_string(C))) {
- rT51fcp(C,(T0 *)ms335);
- _external_lgg=((T0 *)((T207*)new(207)));
- }
- else if (rT7is_equal(ms336,((T76*)(C)->_last_manifest_string)->_to_string)) {
- _external_lgg=((T0 *)((T207*)new(207)));
- }
- else if (rT7is_equal(ms337,((T76*)(C)->_last_manifest_string)->_to_string)) {
- _external_lgg=((T0 *)((T208*)new(208)));
- }
- else if (rT7is_equal(ms338,((T76*)(C)->_last_manifest_string)->_to_string)) {
- _external_lgg=((T0 *)((T209*)new(209)));
- }
- else {
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms339);
- /*UT*/(T45*)oRBC27eh;
- rT45append(((T76*)(C)->_last_manifest_string)->_to_string);
- rT51fcp(C,(T0 *)ms340);
- _external_lgg=((T0 *)((T207*)new(207)));
- }
- /*FI*/R=rT136to_external_routine((T136*)oRBC51tmp_feature,_external_lgg,rT51a_external_name(C));
- return R;
- }
- T0* rT51clone(T51 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*FI*/return R;
- }
- T0*oRBC51forbidden_class;
- void rT51a_r10(T51 *C,int a1,T0 * a2,T0 * a3,T0 * a4){
- /*IF*/if (rT51skip1unless2(C,'\56','\56')) {
- rT51a_after_a_dot(C,a1,rT51to_call(a2,a3,a4));
- }
- else {
- /*IF*/if (a1) {
- C->_last_instruction=rT51to_proc_call(C,a2,a3,a4);
- C->_last_expression=NULL;
- }
- else {
- C->_last_expression=rT51to_call(a2,a3,a4);
- C->_last_instruction=NULL;
- }
- /*FI*/}
- /*FI*/}
- T0 * rT51analyse_class(T51 *C,T0* a1){
- T0 * R=NULL;
- int _old_nbw=0;
- int _old_nbe=0;
- /*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)>(0)) {
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms76);
- rT45print_as_fatal_error((T45*)oRBC27eh);
- }
- /*FI*//*IF*/if (/*(IRF4*/(!(/*(IRF4*/(!(/*(IRF4*/((T51*)oRBC27eiffel_parser)->_is_running/*)*/))&&(((T52*)oRBC27small_eiffel)->_is_doing_eval_flag)/*)*/))&&(((T52*)oRBC27small_eiffel)->_is_compiling_flag)/*)*/) {
- rT38put_integer((T38*)oRBC1std_output,(/*(IRF4*/(/*UT*/(T52*)oRBC27small_eiffel,
- ((T54*)oRBC52base_class_dictionary)->_count/*)*/))+(1));
- rT38put_character((T38*)oRBC1std_output,'\11');
- rT38put_string((T38*)oRBC1std_output,a1);
- rT38put_character((T38*)oRBC1std_output,'\12');
- }
- /*FI*/_old_nbe=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
- _old_nbw=/*(IRF4*/((T45*)oRBC27eh)->_nb_warnings/*)*/;
- C->_is_running=1;
- C->_function_type=NULL;
- C->_in_ensure=0;
- C->_last_comments=NULL;
- rT60read((T60*)oRBC51text,a1);
- C->_line=1;
- C->_column=1;
- C->_current_line=(/*UT*/(T60*)oRBC51text,
- rT60item((C)->_line));
- /*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
- C->_cc='\12';
- }
- else {
- C->_cc=rT7first((T7*)(C)->_current_line);
- }
- /*FI*/{T50 *n=((T50*)new(50));
- rT50make(n,a1);
- C->_last_base_class=(T0 *)n;}
- rT51skip_comments(C);
- rT51a_class_declaration(C);
- C->_is_running=0;
- R=(C)->_last_base_class;
- /*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_old_nbe))>(0)) {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms411);
- rT33put_integer((T33*)oRBC1std_error,/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms412);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms413);
- rT33put_string((T33*)oRBC1std_error,a1);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms414);
- R=NULL;
- }
- else if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_warnings/*)*/)-(_old_nbw))>(0)) {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms415);
- rT33put_integer((T33*)oRBC1std_error,/*(IRF4*/((T45*)oRBC27eh)->_nb_warnings/*)*/);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms416);
- }
- /*FI*//*IF*/if (((int)R)) {
- rT52add_class((T52*)oRBC27small_eiffel,R);
- rT50get_started((T50*)R);
- }
- /*FI*/return R;
- }
- T0 * rT51a_routine_body(T51 *C){
- T0 * R=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms333)) {
- rT50set_is_deferred((T50*)(C)->_last_base_class);
- R=rT136to_deferred_routine((T136*)oRBC51tmp_feature);
- }
- else if (rT51a_keyword(C,(T0 *)ms334)) {
- R=rT51a_external(C);
- }
- else if (rT51a_keyword(C,(T0 *)ms343)) {
- /*(IRF3*/(((T136*)oRBC51tmp_feature)->_routine_body)=(rT51a_compound1(C,(T0 *)ms396));
- /*)*/R=rT136to_procedure_or_function((T136*)oRBC51tmp_feature);
- }
- else if (rT51a_keyword(C,(T0 *)ms397)) {
- /*(IRF3*/(((T136*)oRBC51tmp_feature)->_routine_body)=(rT51a_compound1(C,(T0 *)ms398));
- /*)*/R=rT136to_once_routine((T136*)oRBC51tmp_feature);
- }
- else {
- rT51fcp(C,(T0 *)ms399);
- }
- /*FI*/return R;
- }
- T0 * rT51a_routine(T51 *C){
- T0 * R=NULL;
- T0 * _ea=NULL;
- T0* _al=NULL;
- T0 * _hc=NULL;
- T0 * _sp=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms279)) {
- /*IF*/if (rT51a_manifest_string(C)) {
- /*(IRF3*/(((T136*)oRBC51tmp_feature)->_obsolete_mark)=((C)->_last_manifest_string);
- /*)*/}
- else {
- rT51fcp(C,(T0 *)ms280);
- }
- /*FI*/}
- /*FI*//*(IRF3*/(((T136*)oRBC51tmp_feature)->_header_comment)=(rT51get_comments(C));
- /*)*//*IF*/if (rT51a_keyword(C,(T0 *)ms281)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_keyword(C,(T0 *)ms107)) {
- _hc=rT51get_comments(C);
- rT136set_require_else((T136*)oRBC51tmp_feature,_sp,_hc,rT51a_assertion(C));
- }
- else {
- _hc=rT51get_comments(C);
- rT136set_require((T136*)oRBC51tmp_feature,_sp,_hc,rT51a_assertion(C));
- }
- /*FI*/}
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms327)) {
- rT51a_local_var_list(C,rT51pos((C)->_start_line,(C)->_start_column));
- }
- /*FI*/R=rT51a_routine_body(C);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms400)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- C->_in_ensure=1;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms104)) {
- _hc=rT51get_comments(C);
- _al=rT51a_assertion(C);
- /*IF*/if ((((int)_hc))||(((int)_al))) {
- {T157 *n=((T157*)new(157));
- rT157make(n,_sp,_hc,_al);
- _ea=(T0 *)n;}
- /*(IRF3*/(((T157*)_ea)->_is_ensure_then)=(1);
- /*)*/}
- /*FI*/XrT156set_ensure_assertion(R,_ea);
- }
- else {
- _hc=rT51get_comments(C);
- _al=rT51a_assertion(C);
- /*IF*/if ((((int)_hc))||(((int)_al))) {
- {T157 *n=((T157*)new(157));
- rT157make(n,_sp,_hc,_al);
- _ea=(T0 *)n;}
- }
- /*FI*/XrT156set_ensure_assertion(R,_ea);
- }
- /*FI*/C->_in_ensure=0;
- }
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms401)) {
- C->_in_rescue=1;
- XrT156set_rescue_compound(R,rT51a_compound2(C,(T0 *)ms403,(T0 *)ms121));
- C->_in_rescue=0;
- }
- else {
- /*IF*/if (!(rT51a_keyword(C,(T0 *)ms121))) {
- rT51wcp(C,(T0 *)ms404);
- }
- /*FI*/}
- /*FI*/C->_local_vars=NULL;
- return R;
- }
- T0*oRBC51tmp_feature;
- void rT51skip_comments(T51 *C){
- int _state=0;
- T0 * _sp=NULL;
- while (!((_state)==(2))) {
- {int iv1=_state;
- if (0 == iv1) goto l186;
- goto l187;
- l186: ;
- {int iv2=(C)->_cc;
- if ((9 <= iv2) && (iv2<= 10)) goto l189;
- if (32 == iv2) goto l189;
- goto l190;
- l189: ;
- rT51next_char(C);
- goto l188;
- l190: ;
- if (45 == iv2) goto l191;
- goto l192;
- l191: ;
- rT51next_char(C);
- _state=1;
- goto l188;
- l192: ;
- _state=2;
- l188: ;
- }
- goto l185;
- l187: ;
- if (1 == iv1) goto l193;
- goto l194;
- l193: ;
- {int iv2=(C)->_cc;
- if (45 == iv2) goto l196;
- goto l197;
- l196: ;
- /*IF*/if (!((C)->_last_comments)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_line,((C)->_column)-(1));
- _sp=(T0 *)n;}
- }
- /*FI*/rT51next_char(C);
- /*(IRF3*/(((T7*)oRBC51lcs)->_count)=(0);
- /*)*/while (!(((C)->_cc)==('\12'))) {
- rT7extend((T7*)oRBC51lcs,(C)->_cc);
- rT51next_char(C);
- }
- /*IF*/if (!((C)->_last_comments)) {
- {T59 *n=((T59*)new(59));
- rT59make(n,_sp,ma(41,0,1,rT51clone(C,oRBC51lcs)));
- C->_last_comments=(T0 *)n;}
- }
- else {
- rT59add_last((T59*)(C)->_last_comments,rT51clone(C,oRBC51lcs));
- }
- /*FI*/_state=0;
- goto l195;
- l197: ;
- rT51prev_char(C);
- _state=2;
- l195: ;
- }
- goto l185;
- l194: ;
- l185: ;
- }
- }
- }
- int rT51a_strip(T51 *C){
- int R=0;
- T0 * _sp=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms290)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51skip1(C,'\50')) {
- C->_ok=rT51a_feature_list(C);
- {T169 *n=((T169*)new(169));
- rT169make(n,_sp,(C)->_last_feature_list);
- C->_last_expression=(T0 *)n;}/*IF*/if (!(rT51skip1(C,'\51'))) {
- rT51fcp(C,(T0 *)ms291);
- }
- /*FI*/R=1;
- }
- else {
- rT51fcp(C,(T0 *)ms292);
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51prev_char(T51 *C){
- /*IF*/if (((C)->_column)>(1)) {
- C->_column=((C)->_column)-(1);
- C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
- }
- else {
- /*IF*/if (((C)->_line)>(1)) {
- C->_line=((C)->_line)-(1);
- C->_current_line=(/*UT*/(T60*)oRBC51text,
- rT60item((C)->_line));
- C->_column=(((T7*)(C)->_current_line)->_count)+(1);
- C->_cc='\12';
- }
- else {
- C->_column=0;
- C->_cc='\0';
- }
- /*FI*/}
- /*FI*/}
- int rT51a_type(T51 *C){
- int R=0;
- T0 * _argument_name=NULL;
- T0 * _sp=NULL;
- R=1;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms204)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_identifier(C)) {
- /*IF*/if (rT51a_current(C)) {
- {T90 *n=((T90*)new(90));
- rT90make(n,_sp,(C)->_last_expression);
- C->_last_type=(T0 *)n;}}
- else if (rT51a_argument(C)) {
- _argument_name=(C)->_last_expression;
- if ((int)_argument_name) switch (((T0 *)_argument_name)->id) {
- case 88:
- break;
- default:
- _argument_name = NULL;
- };{T98 *n=((T98*)new(98));
- rT98make(n,_sp,_argument_name);
- C->_last_type=(T0 *)n;}}
- else {
- {T99 *n=((T99*)new(99));
- rT99make(n,_sp,rT69to_feature_name((T69*)rT51tmp_name()));
- C->_last_type=(T0 *)n;}}
- /*FI*/}
- else {
- rT51fcp(C,(T0 *)ms208);
- }
- /*FI*/}
- else if (rT51a_keyword(C,(T0 *)ms123)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_class_type(C)) {
- {T100 *n=((T100*)new(100));
- rT100make(n,_sp,(C)->_last_class_type);
- C->_last_type=(T0 *)n;}}
- else {
- rT51fcp(C,(T0 *)ms210);
- }
- /*FI*/}
- else if (rT51a_keyword(C,(T0 *)ms200)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_integer(C)) {
- {T101 *n=((T101*)new(101));
- rT101make(n,_sp,(C)->_last_integer_constant);
- C->_last_type=(T0 *)n;}}
- else if (rT51a_identifier(C)) {
- {T103 *n=((T103*)new(103));
- rT103make(n,_sp,rT69to_feature_name((T69*)rT51tmp_name()));
- C->_last_type=(T0 *)n;}}
- else {
- rT51fcp(C,(T0 *)ms211);
- }
- /*FI*/}
- else if (rT51a_type_formal_generic(C)) {
- C->_last_type=(C)->_last_type_formal_generic;
- }
- else if (rT51a_class_type(C)) {
- C->_last_type=(C)->_last_class_type;
- }
- else {
- R=0;
- }
- /*FI*/return R;
- }
- int rT51a_type_formal_generic(T51 *C){
- int R=0;
- int _rank=0;
- T0 * _cn=NULL;
- T0 * _fga=NULL;
- /*IF*/if (((int)(C)->_formal_generic_list)) {
- _rank=1;
- while (!((R)||((_rank)>(rT85count((T85*)(C)->_formal_generic_list))))) {
- _fga=rT85item((T85*)(C)->_formal_generic_list,_rank);
- /*IF*/if (rT51a_keyword(C,((T48*)((T84*)_fga)->_name)->_to_string)) {
- {T48 *n=((T48*)new(48));
- rT48make(n,((T48*)((T84*)_fga)->_name)->_to_string,rT51pos((C)->_start_line,(C)->_start_column));
- _cn=(T0 *)n;}
- {T104 *n=((T104*)new(104));
- rT104make(n,_cn,_rank);
- C->_last_type_formal_generic=(T0 *)n;}
- R=1;
- }
- /*FI*/_rank=(_rank)+(1);
- }
- }
- /*FI*/return R;
- }
- void rT51next_char(T51 *C){
- /*IF*/if (((C)->_column)<(((T7*)(C)->_current_line)->_count)) {
- C->_column=((C)->_column)+(1);
- C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
- }
- else if (((C)->_column)==(((T7*)(C)->_current_line)->_count)) {
- C->_column=((C)->_column)+(1);
- C->_cc='\12';
- }
- else if (((C)->_line)==(((T60*)oRBC51text)->_count)) {
- C->_cc='\1';
- }
- else {
- C->_column=1;
- C->_line=((C)->_line)+(1);
- C->_current_line=(/*UT*/(T60*)oRBC51text,
- rT60item((C)->_line));
- /*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
- C->_cc='\12';
- }
- else {
- C->_cc=rT7first((T7*)(C)->_current_line);
- }
- /*FI*/}
- /*FI*/}
- int ofBC51tmp_name=0;
- T0*oRBC51tmp_name;
- T0 * rT51tmp_name(/*C*/void){
- T0 * R=NULL;
- if (ofBC51tmp_name==0){
- ofBC51tmp_name=1;
- {T69 *n=((T69*)new(69));
- rT69make(n,0,0);
- R=(T0 *)n;}
- oRBC51tmp_name=R;}
- return oRBC51tmp_name;}
- int ofBC51tmp_operator=0;
- T0*oRBC51tmp_operator;
- T0 * rT51tmp_operator(/*C*/void){
- T0 * R=NULL;
- if (ofBC51tmp_operator==0){
- ofBC51tmp_operator=1;
- {T69 *n=((T69*)new(69));
- rT69make(n,0,0);
- R=(T0 *)n;}
- oRBC51tmp_operator=R;}
- return oRBC51tmp_operator;}
- T0 * rT51current_position(T51 *C){
- T0 * R=NULL;
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_line,(C)->_column);
- R=(T0 *)n;}
- return R;
- }
- void rT51warning(/*C*/T0 * a1,T0* a2){
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(a1);
- rT45warning((T45*)oRBC27eh,a2);
- }
- T0 * rT51current_class_name(T51 *C){
- T0 * R=NULL;
- R=((T50*)(C)->_last_base_class)->_base_class_name;
- return R;
- }
- T0 * rT51to_proc_call(T51 *C,T0 * a1,T0 * a2,T0 * a3){
- T0 * R=NULL;
- /*IF*/if (!(a2)) {
- rT51fcp(C,(T0 *)ms300);
- }
- else if (!(a3)) {
- {T178 *n=((T178*)new(178));
- rT178make(n,a1,a2);
- R=(T0 *)n;}}
- else if ((rT170count((T170*)a3))==(1)) {
- {T179 *n=((T179*)new(179));
- rT179make(n,a1,a2,a3);
- R=(T0 *)n;}}
- else {
- {T180 *n=((T180*)new(180));
- rT180make(n,a1,a2,a3);
- R=(T0 *)n;}}
- /*FI*/return R;
- }
- void rT51error(/*C*/T0 * a1,T0* a2){
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(a1);
- rT45error((T45*)oRBC27eh,a2);
- }
- void rT51ecp(T51 *C,T0* a1){
- rT51error(rT51current_position(C),a1);
- }
- void rT51fcp(T51 *C,T0* a1){
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(rT51current_position(C));
- rT51fatal_error(a1);
- }
- void rT51copy(T51 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- T0*oRBC51lcs;
- T0*oRBC51text;
- void rT51wcp(T51 *C,T0* a1){
- rT51warning(rT51current_position(C),a1);
- }
- T0 * rT51pos(/*C*/int a1,int a2){
- T0 * R=NULL;
- {T46 *n=((T46*)new(46));
- rT46make(n,a1,a2);
- R=(T0 *)n;}
- return R;
- }
- int rT51a_e0(T51 *C){
- int R=0;
- R=rT51a_e1(C);
- rT51a_r1(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e1(T51 *C){
- int R=0;
- R=rT51a_e2(C);
- rT51a_r2(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e2(T51 *C){
- int R=0;
- R=rT51a_e3(C);
- rT51a_r3(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e3(T51 *C){
- int R=0;
- R=rT51a_e4(C);
- rT51a_r4(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e4(T51 *C){
- int R=0;
- R=rT51a_e5(C);
- rT51a_r5(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e5(T51 *C){
- int R=0;
- R=rT51a_e6(C);
- rT51a_r6(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e6(T51 *C){
- int R=0;
- R=rT51a_e7(C);
- rT51a_r7(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e7(T51 *C){
- int R=0;
- R=rT51a_e8(C);
- rT51a_r8(C,(C)->_last_expression);
- return R;
- }
- int rT51a_e8(T51 *C){
- int R=0;
- T0 * _sp=NULL;
- T0 * _prefix_freeop=NULL;
- T0 * _op=NULL;
- T0 * _prefix_moins=NULL;
- T0 * _prefix_plus=NULL;
- T0 * _prefix_not=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms84)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e8(C)) {
- {T161 *n=((T161*)new(161));
- rT161make(n,_sp,(C)->_last_expression);
- _prefix_not=(T0 *)n;}
- C->_last_expression=_prefix_not;
- R=1;
- }
- else {
- rT51err_exp(_sp,(T0 *)ms84);
- }
- /*FI*/}
- else if (rT51skip1(C,'\53')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e8(C)) {
- {T165 *n=((T165*)new(165));
- rT165make(n,_sp,(C)->_last_expression);
- _prefix_plus=(T0 *)n;}
- C->_last_expression=_prefix_plus;
- R=1;
- }
- else {
- rT51err_exp(_sp,(T0 *)ms285);
- }
- /*FI*/}
- else if (rT51skip1(C,'\55')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e8(C)) {
- {T166 *n=((T166*)new(166));
- rT166make(n,_sp,(C)->_last_expression);
- _prefix_moins=(T0 *)n;}
- C->_last_expression=_prefix_moins;
- R=1;
- }
- else {
- rT51err_exp(_sp,(T0 *)ms286);
- }
- /*FI*/}
- else if (rT51a_free_operator(C)) {
- _op=rT69to_prefix_name((T69*)rT51tmp_operator());
- /*IF*/if (rT51a_e8(C)) {
- {T167 *n=((T167*)new(167));
- rT167make(n,(C)->_last_expression,_op);
- _prefix_freeop=(T0 *)n;}
- C->_last_expression=_prefix_freeop;
- R=1;
- }
- else {
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms287);
- rT51err_exp(((T66*)_op)->_start_position,((T66*)_op)->_to_string);
- }
- /*FI*/}
- else {
- R=rT51a_e9(C);
- }
- /*FI*/return R;
- }
- int rT51a_e9(T51 *C){
- int R=0;
- T0 * _e_old=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms288)) {
- /*IF*/if (!((C)->_in_ensure)) {
- rT51error(rT51pos((C)->_start_line,(C)->_start_column),(T0 *)ms289);
- }
- /*FI*//*IF*/if (rT51a_e10(C)) {
- {T168 *n=((T168*)new(168));
- /*(IRF3*/((n)->_expression)=((C)->_last_expression);
- /*)*/_e_old=(T0 *)n;}
- C->_last_expression=_e_old;
- R=1;
- }
- else {
- rT51fcp(C,(T0 *)ms304);
- }
- /*FI*/}
- else {
- R=rT51a_e10(C);
- }
- /*FI*/return R;
- }
- void rT51a_r1(T51 *C,T0 * a1){
- T0 * _sp=NULL;
- T0 * _infix_implies=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms102)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e1(C)) {
- {T202 *n=((T202*)new(202));
- rT202make(n,a1,_sp,(C)->_last_expression);
- _infix_implies=(T0 *)n;}
- rT51a_r1(C,_infix_implies);
- }
- else {
- rT51error(_sp,(T0 *)ms326);
- }
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- void rT51a_r2(T51 *C,T0 * a1){
- T0 * _sp=NULL;
- T0 * _infix_xor=NULL;
- T0 * _infix_or=NULL;
- T0 * _infix_or_else=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms106)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_keyword(C,(T0 *)ms107)) {
- /*IF*/if (rT51a_e2(C)) {
- {T199 *n=((T199*)new(199));
- rT199make(n,a1,_sp,(C)->_last_expression);
- _infix_or_else=(T0 *)n;}
- rT51a_r2(C,_infix_or_else);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms108);
- }
- /*FI*/}
- else {
- /*IF*/if (rT51a_e2(C)) {
- {T200 *n=((T200*)new(200));
- rT200make(n,a1,_sp,(C)->_last_expression);
- _infix_or=(T0 *)n;}
- rT51a_r2(C,_infix_or);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms106);
- }
- /*FI*/}
- /*FI*/}
- else if (rT51a_keyword(C,(T0 *)ms101)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e2(C)) {
- {T201 *n=((T201*)new(201));
- rT201make(n,a1,_sp,(C)->_last_expression);
- _infix_xor=(T0 *)n;}
- rT51a_r2(C,_infix_xor);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms101);
- }
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- void rT51a_r3(T51 *C,T0 * a1){
- T0 * _sp=NULL;
- T0 * _infix_and=NULL;
- T0 * _infix_and_then=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms103)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_keyword(C,(T0 *)ms104)) {
- /*IF*/if (rT51a_e3(C)) {
- {T197 *n=((T197*)new(197));
- rT197make(n,a1,_sp,(C)->_last_expression);
- _infix_and_then=(T0 *)n;}
- rT51a_r3(C,_infix_and_then);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms105);
- }
- /*FI*/}
- else {
- /*IF*/if (rT51a_e3(C)) {
- {T198 *n=((T198*)new(198));
- rT198make(n,a1,_sp,(C)->_last_expression);
- _infix_and=(T0 *)n;}
- rT51a_r3(C,_infix_and);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms103);
- }
- /*FI*/}
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- void rT51a_r4(T51 *C,T0 * a1){
- T0 * _sp=NULL;
- T0 * _infix_gt=NULL;
- T0 * _infix_ge=NULL;
- T0 * _infix_lt=NULL;
- T0 * _infix_le=NULL;
- T0 * _infix_not_equal=NULL;
- T0 * _infix_equal=NULL;
- /*IF*/if (rT51skip1(C,'\75')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e4(C)) {
- {T191 *n=((T191*)new(191));
- rT191make(n,a1,_sp,(C)->_last_expression);
- _infix_equal=(T0 *)n;}
- rT51a_r4(C,_infix_equal);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms315);
- }
- /*FI*/}
- else if (rT51skip2(C,'\57','\75')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e4(C)) {
- {T192 *n=((T192*)new(192));
- rT192make(n,a1,_sp,(C)->_last_expression);
- _infix_not_equal=(T0 *)n;}
- rT51a_r4(C,_infix_not_equal);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms317);
- }
- /*FI*/}
- else if (rT51skip2(C,'\74','\75')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e4(C)) {
- {T193 *n=((T193*)new(193));
- rT193make(n,a1,_sp,(C)->_last_expression);
- _infix_le=(T0 *)n;}
- rT51a_r4(C,_infix_le);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms319);
- }
- /*FI*/}
- else if (rT51skip2(C,'\76','\75')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e4(C)) {
- {T195 *n=((T195*)new(195));
- rT195make(n,a1,_sp,(C)->_last_expression);
- _infix_ge=(T0 *)n;}
- rT51a_r4(C,_infix_ge);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms321);
- }
- /*FI*/}
- else if (rT51skip1(C,'\74')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e4(C)) {
- {T194 *n=((T194*)new(194));
- rT194make(n,a1,_sp,(C)->_last_expression);
- _infix_lt=(T0 *)n;}
- rT51a_r4(C,_infix_lt);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms323);
- }
- /*FI*/}
- else if (rT51skip1unless2(C,'\76','\76')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e4(C)) {
- {T196 *n=((T196*)new(196));
- rT196make(n,a1,_sp,(C)->_last_expression);
- _infix_gt=(T0 *)n;}
- rT51a_r4(C,_infix_gt);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms325);
- }
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- void rT51a_r5(T51 *C,T0 * a1){
- T0 * _sp=NULL;
- T0 * _infix_minus=NULL;
- T0 * _infix_plus=NULL;
- /*IF*/if (rT51skip1(C,'\53')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e5(C)) {
- {T189 *n=((T189*)new(189));
- rT189make(n,a1,_sp,(C)->_last_expression);
- _infix_plus=(T0 *)n;}
- rT51a_r5(C,_infix_plus);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms86);
- }
- /*FI*/}
- else if (rT51skip1(C,'\55')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e5(C)) {
- {T190 *n=((T190*)new(190));
- rT190make(n,a1,_sp,(C)->_last_expression);
- _infix_minus=(T0 *)n;}
- rT51a_r5(C,_infix_minus);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms87);
- }
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- void rT51a_r6(T51 *C,T0 * a1){
- T0 * _sp=NULL;
- T0 * _infix_div=NULL;
- T0 * _infix_int_rem=NULL;
- T0 * _infix_int_div=NULL;
- T0 * _infix_times=NULL;
- /*IF*/if (rT51skip1(C,'\52')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e6(C)) {
- {T185 *n=((T185*)new(185));
- rT185make(n,a1,_sp,(C)->_last_expression);
- _infix_times=(T0 *)n;}
- rT51a_r6(C,_infix_times);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms309);
- }
- /*FI*/}
- else if (rT51skip2(C,'\57','\57')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e6(C)) {
- {T186 *n=((T186*)new(186));
- rT186make(n,a1,_sp,(C)->_last_expression);
- _infix_int_div=(T0 *)n;}
- rT51a_r6(C,_infix_int_div);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms311);
- }
- /*FI*/}
- else if (rT51skip2(C,'\134','\134')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e6(C)) {
- {T187 *n=((T187*)new(187));
- rT187make(n,a1,_sp,(C)->_last_expression);
- _infix_int_rem=(T0 *)n;}
- rT51a_r6(C,_infix_int_rem);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms313);
- }
- /*FI*/}
- else if (rT51skip1unless2(C,'\57','\75')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e6(C)) {
- {T188 *n=((T188*)new(188));
- rT188make(n,a1,_sp,(C)->_last_expression);
- _infix_div=(T0 *)n;}
- rT51a_r6(C,_infix_div);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms97);
- }
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- int rT51skip1unless2(T51 *C,char a1,char a2){
- int R=0;
- C->_start_line=(C)->_line;
- C->_start_column=(C)->_column;
- /*IF*/if (((C)->_cc)==(a1)) {
- rT51next_char(C);
- /*IF*/if (((C)->_cc)==(a2)) {
- rT51prev_char(C);
- }
- else {
- R=1;
- rT51skip_comments(C);
- }
- /*FI*/}
- /*FI*/return R;
- }
- int rT51skip1(T51 *C,char a1){
- int R=0;
- /*IF*/if ((a1)==((C)->_cc)) {
- C->_start_line=(C)->_line;
- C->_start_column=(C)->_column;
- R=1;
- rT51next_char(C);
- rT51skip_comments(C);
- }
- /*FI*/return R;
- }
- void rT51a_r7(T51 *C,T0 * a1){
- T0 * _sp=NULL;
- T0 * _infix_power=NULL;
- /*IF*/if (rT51skip1(C,'\136')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51a_e7(C)) {
- {T184 *n=((T184*)new(184));
- rT184make(n,a1,_sp,(C)->_last_expression);
- _infix_power=(T0 *)n;}
- rT51a_r7(C,_infix_power);
- }
- else {
- rT51err_exp(_sp,(T0 *)ms307);
- }
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- int rT51skip2(T51 *C,char a1,char a2){
- int R=0;
- /*IF*/if ((a1)==((C)->_cc)) {
- C->_start_line=(C)->_line;
- C->_start_column=(C)->_column;
- rT51next_char(C);
- /*IF*/if ((a2)==((C)->_cc)) {
- R=1;
- rT51next_char(C);
- rT51skip_comments(C);
- }
- else {
- rT51prev_char(C);
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51a_r8(T51 *C,T0 * a1){
- T0 * _infix_freeop=NULL;
- T0 * _infix_name=NULL;
- /*IF*/if (rT51a_free_operator(C)) {
- _infix_name=rT69to_infix_name_use((T69*)rT51tmp_operator());
- /*IF*/if (rT51a_e8(C)) {
- {T182 *n=((T182*)new(182));
- rT182make(n,a1,_infix_name,(C)->_last_expression);
- _infix_freeop=(T0 *)n;}
- rT51a_r8(C,_infix_freeop);
- }
- else {
- rT51err_exp(((T70*)_infix_name)->_start_position,((T70*)_infix_name)->_to_string);
- }
- /*FI*/}
- else {
- C->_last_expression=a1;
- }
- /*FI*/}
- int rT51a_debug(T51 *C){
- int R=0;
- T0 * _e_debug=NULL;
- T0* _list=NULL;
- T0 * _sp=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms346)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (rT51skip1(C,'\50')) {
- while (!(!(rT51a_manifest_string(C)))) {
- /*IF*/if (!(_list)) {
- _list=ma(151,0,1,(C)->_last_manifest_string);
- }
- else {
- rT151add_last((T151*)_list,(C)->_last_manifest_string);
- }
- /*FI*/C->_ok=rT51skip1(C,'\54');
- }
- /*IF*/if (!(_list)) {
- rT51wcp(C,(T0 *)ms347);
- }
- /*FI*//*IF*/if (!(rT51skip1(C,'\51'))) {
- rT51fcp(C,(T0 *)ms348);
- }
- /*FI*/}
- /*FI*/R=1;
- {T215 *n=((T215*)new(215));
- rT215make(n,_sp,_list,rT51a_compound2(C,(T0 *)ms352,(T0 *)ms121));
- _e_debug=(T0 *)n;}
- C->_last_instruction=_e_debug;
- }
- /*FI*/return R;
- }
- int rT51a_feature_declaration(T51 *C){
- int R=0;
- rT136initialize((T136*)oRBC51tmp_feature);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms254)) {
- /*IF*/if (rT51a_feature_name(C)) {
- R=1;
- XrT67set_is_frozen((C)->_last_feature_name,1);
- /*UT*/(T136*)oRBC51tmp_feature;
- rT136add_synonym((C)->_last_feature_name);
- }
- else {
- rT51fcp(C,(T0 *)ms240);
- }
- /*FI*/}
- else if (rT51a_feature_name(C)) {
- R=1;
- /*UT*/(T136*)oRBC51tmp_feature;
- rT136add_synonym((C)->_last_feature_name);
- }
- /*FI*/while (!(!(rT51skip1(C,'\54')))) {
- /*IF*/if (rT51a_keyword(C,(T0 *)ms255)) {
- /*IF*/if (rT51a_feature_name(C)) {
- XrT67set_is_frozen((C)->_last_feature_name,1);
- /*UT*/(T136*)oRBC51tmp_feature;
- rT136add_synonym((C)->_last_feature_name);
- }
- else {
- rT51fcp(C,(T0 *)ms256);
- }
- /*FI*/}
- else if (rT51a_feature_name(C)) {
- /*UT*/(T136*)oRBC51tmp_feature;
- rT136add_synonym((C)->_last_feature_name);
- }
- else {
- rT51ecp(C,(T0 *)ms257);
- }
- /*FI*/}
- /*IF*/if (R) {
- rT51a_formal_arg_list(C);
- C->_function_type=NULL;
- /*IF*/if (rT51skip1(C,'\72')) {
- /*IF*/if (!(rT51a_type(C))) {
- rT51fcp(C,(T0 *)ms263);
- }
- else {
- C->_function_type=(C)->_last_type;
- /*(IRF3*/(((T136*)oRBC51tmp_feature)->_type)=((C)->_last_type);
- /*)*/}
- /*FI*/}
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms264)) {
- /*IF*/if (rT51a_keyword(C,(T0 *)ms265)) {
- C->_last_feature_declaration=rT136to_cst_att_unique((T136*)oRBC51tmp_feature);
- }
- else if (rT51a_boolean_constant(C)) {
- C->_last_feature_declaration=rT136to_cst_att_boolean((T136*)oRBC51tmp_feature,(C)->_last_boolean_constant);
- }
- else if (rT51a_character_constant(C)) {
- C->_last_feature_declaration=rT136to_cst_att_character((T136*)oRBC51tmp_feature,(C)->_last_character_constant);
- }
- else if (rT51a_manifest_string(C)) {
- C->_last_feature_declaration=rT136to_cst_att_string((T136*)oRBC51tmp_feature,(C)->_last_manifest_string);
- }
- else if (rT51a_bit_constant(C)) {
- C->_last_feature_declaration=rT136to_cst_att_bit((T136*)oRBC51tmp_feature,(C)->_last_bit_constant);
- }
- else if (rT51a_real_constant(C)) {
- C->_last_feature_declaration=rT136to_cst_att_real((T136*)oRBC51tmp_feature,(C)->_last_real_constant);
- }
- else if (rT51a_integer_constant(C)) {
- C->_last_feature_declaration=rT136to_cst_att_integer((T136*)oRBC51tmp_feature,(C)->_last_integer_constant);
- }
- else {
- C->_last_feature_declaration=rT51a_routine(C);
- }
- /*FI*/}
- else {
- C->_last_feature_declaration=rT136to_writable_attribute((T136*)oRBC51tmp_feature);
- }
- /*FI*/C->_function_type=NULL;
- C->_arguments=NULL;
- }
- /*FI*/return R;
- }
- void rT51a_feature_clause(T51 *C){
- T0* _aof=NULL;
- T0 * _comment=NULL;
- T0 * _clients=NULL;
- T0 * _feature_clause=NULL;
- _clients=rT51a_clients(C);
- _comment=rT51get_comments(C);
- while (!(!(rT51a_feature_declaration(C)))) {
- C->_ok=rT51skip1(C,'\73');
- /*IF*/if (((int)(C)->_last_feature_declaration)) {
- /*IF*/if (!(_aof)) {
- _aof=ma(63,0,1,(C)->_last_feature_declaration);
- }
- else {
- XrT63add_last(_aof,(C)->_last_feature_declaration);
- }
- /*FI*/XrT62set_header_comment((C)->_last_feature_declaration,rT51get_comments(C));
- }
- /*FI*/}
- /*IF*/if ((((int)_aof))||(((int)_comment))) {
- {T135 *n=((T135*)new(135));
- rT135make(n,_clients,_comment,_aof);
- _feature_clause=(T0 *)n;}
- rT50add_feature_clause((T50*)(C)->_last_base_class,_feature_clause);
- }
- /*FI*/}
- int rT51a_feature_list(T51 *C){
- int R=0;
- int _state=0;
- C->_last_feature_list=NULL;
- while (!((_state)>=(3))) {
- {int iv1=_state;
- if (0 == iv1) goto l199;
- goto l200;
- l199: ;
- /*IF*/if (rT51a_feature_name(C)) {
- C->_last_feature_list=ma(129,0,1,(C)->_last_feature_name);
- R=1;
- _state=1;
- }
- else if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms234);
- C->_ok=rT51skip1(C,'\54');
- }
- else {
- _state=3;
- }
- /*FI*/goto l198;
- l200: ;
- if (1 == iv1) goto l201;
- goto l202;
- l201: ;
- /*IF*/if (((C)->_cc)==('\54')) {
- C->_ok=rT51skip1(C,'\54');
- _state=2;
- }
- else if (rT51a_feature_name(C)) {
- rT51warning(XrT67start_position((C)->_last_feature_name),(T0 *)ms217);
- rT129add_last((T129*)(C)->_last_feature_list,(C)->_last_feature_name);
- }
- else {
- _state=3;
- }
- /*FI*/goto l198;
- l202: ;
- if (2 == iv1) goto l203;
- goto l204;
- l203: ;
- /*IF*/if (rT51a_feature_name(C)) {
- rT129add_last((T129*)(C)->_last_feature_list,(C)->_last_feature_name);
- _state=1;
- }
- else if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms214);
- C->_ok=rT51skip1(C,'\54');
- }
- else {
- rT51ecp(C,(T0 *)ms240);
- _state=3;
- }
- /*FI*/goto l198;
- l204: ;
- l198: ;
- }
- }
- return R;
- }
- int rT51a_feature_name(T51 *C){
- int R=0;
- /*IF*/if (rT51a_prefix(C)) {
- C->_last_feature_name=(C)->_last_prefix;
- R=1;
- }
- else if (rT51a_infix(C)) {
- C->_last_feature_name=(C)->_last_infix;
- R=1;
- }
- else if (rT51a_identifier(C)) {
- C->_last_feature_name=rT69to_feature_name((T69*)rT51tmp_name());
- R=1;
- }
- /*FI*/return R;
- }
- int rT51a_character_constant(T51 *C){
- int R=0;
- char _value='\0';
- int _printing_mode=0;
- int _state=0;
- T0 * _sp=NULL;
- /*IF*/if (((C)->_cc)==('\47')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_line,(C)->_column);
- _sp=(T0 *)n;}
- R=1;
- while (!((_state)>(2))) {
- rT51next_char(C);
- {int iv1=_state;
- if (0 == iv1) goto l206;
- goto l207;
- l206: ;
- {int iv2=(C)->_cc;
- if (37 == iv2) goto l209;
- goto l210;
- l209: ;
- _state=1;
- goto l208;
- l210: ;
- if (39 == iv2) goto l211;
- goto l212;
- l211: ;
- rT51fcp(C,(T0 *)ms162);
- _state=2;
- goto l208;
- l212: ;
- _value=(C)->_cc;
- _printing_mode=0;
- _state=2;
- l208: ;
- }
- goto l205;
- l207: ;
- if (1 == iv1) goto l213;
- goto l214;
- l213: ;
- _printing_mode=1;
- _state=2;
- {int iv2=(C)->_cc;
- if (65 == iv2) goto l216;
- goto l217;
- l216: ;
- _value='\100';
- goto l215;
- l217: ;
- if (66 == iv2) goto l218;
- goto l219;
- l218: ;
- _value='\10';
- goto l215;
- l219: ;
- if (67 == iv2) goto l220;
- goto l221;
- l220: ;
- _value='\136';
- goto l215;
- l221: ;
- if (68 == iv2) goto l222;
- goto l223;
- l222: ;
- _value='\44';
- goto l215;
- l223: ;
- if (70 == iv2) goto l224;
- goto l225;
- l224: ;
- _value='\14';
- goto l215;
- l225: ;
- if (72 == iv2) goto l226;
- goto l227;
- l226: ;
- _value='\134';
- goto l215;
- l227: ;
- if (76 == iv2) goto l228;
- goto l229;
- l228: ;
- _value='\176';
- goto l215;
- l229: ;
- if (78 == iv2) goto l230;
- goto l231;
- l230: ;
- _value='\12';
- goto l215;
- l231: ;
- if (81 == iv2) goto l232;
- goto l233;
- l232: ;
- _value='\140';
- goto l215;
- l233: ;
- if (82 == iv2) goto l234;
- goto l235;
- l234: ;
- _value='\15';
- goto l215;
- l235: ;
- if (83 == iv2) goto l236;
- goto l237;
- l236: ;
- _value='\43';
- goto l215;
- l237: ;
- if (84 == iv2) goto l238;
- goto l239;
- l238: ;
- _value='\11';
- goto l215;
- l239: ;
- if (85 == iv2) goto l240;
- goto l241;
- l240: ;
- _value='\0';
- goto l215;
- l241: ;
- if (86 == iv2) goto l242;
- goto l243;
- l242: ;
- _value='\174';
- goto l215;
- l243: ;
- if (37 == iv2) goto l244;
- goto l245;
- l244: ;
- _value='\45';
- goto l215;
- l245: ;
- if (39 == iv2) goto l246;
- goto l247;
- l246: ;
- _value='\47';
- goto l215;
- l247: ;
- if (34 == iv2) goto l248;
- goto l249;
- l248: ;
- _value='\42';
- goto l215;
- l249: ;
- if (40 == iv2) goto l250;
- goto l251;
- l250: ;
- _value='\133';
- goto l215;
- l251: ;
- if (41 == iv2) goto l252;
- goto l253;
- l252: ;
- _value='\135';
- goto l215;
- l253: ;
- if (60 == iv2) goto l254;
- goto l255;
- l254: ;
- _value='\173';
- goto l215;
- l255: ;
- if (62 == iv2) goto l256;
- goto l257;
- l256: ;
- _value='\175';
- goto l215;
- l257: ;
- if (47 == iv2) goto l258;
- goto l259;
- l258: ;
- rT51a_ascii_code(C);
- _value=(C)->_last_ascii_code;
- _printing_mode=2;
- goto l215;
- l259: ;
- rT51fcp(C,(T0 *)ms166);
- l215: ;
- }
- goto l205;
- l214: ;
- _state=3;
- {int iv2=(C)->_cc;
- if (39 == iv2) goto l261;
- goto l262;
- l261: ;
- goto l260;
- l262: ;
- rT51fcp(C,(T0 *)ms162);
- l260: ;
- }
- rT51next_char(C);
- rT51skip_comments(C);
- l205: ;
- }
- }
- {T75 *n=((T75*)new(75));
- rT75make(n,_sp,_value,_printing_mode);
- C->_last_character_constant=(T0 *)n;}
- }
- /*FI*/return R;
- }
- int rT51a_check(T51 *C){
- int R=0;
- T0* _al=NULL;
- T0 * _hc=NULL;
- T0 * _sp=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms114)) {
- R=1;
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- _hc=rT51get_comments(C);
- _al=rT51a_assertion(C);
- /*IF*/if ((((int)_hc))||(((int)_al))) {
- {T213 *n=((T213*)new(213));
- rT213make(n,_sp,_hc,_al);
- C->_last_instruction=(T0 *)n;}}
- else {
- rT51wcp(C,(T0 *)ms344);
- }
- /*FI*//*IF*/if (!(rT51a_keyword(C,(T0 *)ms121))) {
- rT51fcp(C,(T0 *)ms345);
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51a_class_declaration(T51 *C){
- T0* _al=NULL;
- T0 * _hc=NULL;
- T0 * _sp=NULL;
- rT51a_indexing(C);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms177)) {
- rT50set_is_deferred((T50*)(C)->_last_base_class);
- }
- /*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms123)) {
- rT50set_is_expanded((T50*)(C)->_last_base_class);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms179)) {
- rT50set_is_deferred((T50*)(C)->_last_base_class);
- }
- /*FI*/}
- /*FI*//*(IRF3*/(((T50*)(C)->_last_base_class)->_heading_comment1)=(rT51get_comments(C));
- /*)*//*IF*/if (!(rT51a_keyword(C,(T0 *)ms180))) {
- rT51fcp(C,(T0 *)ms181);
- }
- /*FI*//*IF*/if (rT51a_base_class_name(C)) {
- rT48set_with((T48*)rT51current_class_name(C),(C)->_last_class_name);
- /*IF*/if (rT41fast_has((T41*)oRBC51forbidden_class,((T48*)(C)->_last_class_name)->_to_string)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(((T48*)(C)->_last_class_name)->_start_position);
- rT51fatal_error((T0 *)ms202);
- }
- /*FI*/}
- else {
- rT51fcp(C,(T0 *)ms203);
- }
- /*FI*/rT51a_formal_generic_list(C);
- /*IF*/if (rT51a_keyword(C,(T0 *)ms222)) {
- /*IF*/if (rT51a_manifest_string(C)) {
- /*(IRF3*/(((T50*)(C)->_last_base_class)->_obsolete_type_string)=((C)->_last_manifest_string);
- /*)*/}
- else {
- rT51fcp(C,(T0 *)ms223);
- }
- /*FI*/}
- /*FI*//*(IRF3*/(((T50*)(C)->_last_base_class)->_heading_comment2)=(rT51get_comments(C));
- /*)*//*IF*/if (rT51a_keyword(C,(T0 *)ms224)) {
- rT51a_parent_list(C,rT51pos((C)->_start_line,(C)->_start_column),rT51get_comments(C));
- }
- /*FI*/while (!(!(rT51a_keyword(C,(T0 *)ms116)))) {
- rT51a_creation_clause(C);
- }
- while (!(!(rT51a_keyword(C,(T0 *)ms253)))) {
- rT51a_feature_clause(C);
- }
- /*IF*/if (rT51a_keyword(C,(T0 *)ms407)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- _hc=rT51get_comments(C);
- _al=rT51a_assertion(C);
- rT50set_invariant((T50*)(C)->_last_base_class,_sp,_hc,_al);
- }
- /*FI*//*(IRF3*/(((T50*)(C)->_last_base_class)->_end_comment)=(rT51get_comments(C));
- /*)*//*IF*/if (rT51a_keyword(C,(T0 *)ms121)) {
- /*IF*/if (((C)->_cc)==('\73')) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- }
- /*FI*//*IF*/if (((C)->_cc)!=('\1')) {
- rT51fcp(C,(T0 *)ms408);
- }
- /*FI*//*IF*/if ((((int)(C)->_last_comments))&&((rT59count((T59*)(C)->_last_comments))>(1))) {
- rT51fcp(C,(T0 *)ms409);
- }
- /*FI*/}
- else {
- rT51fcp(C,(T0 *)ms410);
- }
- /*FI*/}
- int rT51a_class_type(T51 *C){
- int R=0;
- T0* _generic_list=NULL;
- T0 * _base_class_name=NULL;
- int _state=0;
- /*IF*/if (rT51a_base_type(C)) {
- C->_last_class_type=(C)->_last_base_type;
- R=1;
- }
- else if (rT51a_base_class_name(C)) {
- R=1;
- _base_class_name=(C)->_last_class_name;
- while (!((_state)>(2))) {
- {int iv1=_state;
- if (0 == iv1) goto l264;
- goto l265;
- l264: ;
- /*IF*/if (rT51skip1(C,'\133')) {
- _state=1;
- }
- else {
- {T116 *n=((T116*)new(116));
- /*(IRF3*/((n)->_base_class_name)=(_base_class_name);
- /*)*/C->_last_class_type=(T0 *)n;}_state=3;
- }
- /*FI*/goto l263;
- l265: ;
- if (1 == iv1) goto l266;
- goto l267;
- l266: ;
- /*IF*/if (rT51a_type(C)) {
- /*IF*/if (!(_generic_list)) {
- _generic_list=ma(106,0,1,(C)->_last_type);
- }
- else {
- rT106add_last((T106*)_generic_list,(C)->_last_type);
- }
- /*FI*/_state=2;
- }
- else if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms214);
- C->_ok=rT51skip1(C,'\54');
- }
- else if (((C)->_cc)==('\135')) {
- _state=2;
- }
- else {
- rT51fcp(C,(T0 *)ms215);
- _state=2;
- }
- /*FI*/goto l263;
- l267: ;
- /*IF*/if (rT51skip1(C,'\54')) {
- _state=1;
- }
- else if (((C)->_cc)==('\135')) {
- /*IF*/if (!(_generic_list)) {
- rT51wcp(C,(T0 *)ms216);
- {T116 *n=((T116*)new(116));
- /*(IRF3*/((n)->_base_class_name)=(_base_class_name);
- /*)*/C->_last_class_type=(T0 *)n;}}
- else {
- {T117 *n=((T117*)new(117));
- rT117make(n,_base_class_name,_generic_list);
- C->_last_class_type=(T0 *)n;}}
- /*FI*/C->_ok=rT51skip1(C,'\135');
- _state=3;
- }
- else if (rT51a_type(C)) {
- /*IF*/if (!(_generic_list)) {
- _generic_list=ma(106,0,1,(C)->_last_type);
- }
- else {
- rT106add_last((T106*)_generic_list,(C)->_last_type);
- }
- /*FI*/rT51warning(XrT58start_position((C)->_last_type),(T0 *)ms217);
- }
- else {
- rT51fcp(C,(T0 *)ms218);
- _state=3;
- }
- /*FI*/ l263: ;
- }
- }
- }
- /*FI*/return R;
- }
- int rT51a_identifier(T51 *C){
- int R=0;
- int _do_warning=0;
- int _state=0;
- /*IF*/if (rT3is_letter((C)->_cc)) {
- rT69make((T69*)rT51tmp_name(),(C)->_line,(C)->_column);
- rT69extend((T69*)rT51tmp_name(),(C)->_cc);
- while (!((_state)>(0))) {
- rT51next_char(C);
- {int iv1=(C)->_cc;
- if ((48 <= iv1) && (iv1<= 57)) goto l269;
- if (95 == iv1) goto l269;
- if ((97 <= iv1) && (iv1<= 122)) goto l269;
- goto l270;
- l269: ;
- rT69extend((T69*)rT51tmp_name(),(C)->_cc);
- goto l268;
- l270: ;
- if ((65 <= iv1) && (iv1<= 90)) goto l271;
- goto l272;
- l271: ;
- _do_warning=1;
- rT69extend((T69*)rT51tmp_name(),rT3to_lower((C)->_cc));
- goto l268;
- l272: ;
- _state=1;
- l268: ;
- }
- }
- /*IF*/if (rT69isa_keyword((T69*)rT51tmp_name())) {
- _state=rT69count((T69*)rT51tmp_name());
- while (!((_state)==(0))) {
- _state=(_state)-(1);
- rT51prev_char(C);
- }
- }
- else {
- R=1;
- rT51skip_comments(C);
- /*IF*/if (_do_warning) {
- rT51warning(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms159);
- }
- /*FI*/}
- /*FI*/}
- /*FI*/return R;
- }
- int rT51a_base_class_name(T51 *C){
- int R=0;
- int _do_warning=0;
- int _state=0;
- /*IF*/if (rT3is_letter((C)->_cc)) {
- /*IF*/if (((C)->_cc)>=('a')) {
- _do_warning=1;
- C->_cc=rT3to_upper((C)->_cc);
- }
- /*FI*/rT69make((T69*)rT51tmp_name(),(C)->_line,(C)->_column);
- rT69extend((T69*)rT51tmp_name(),(C)->_cc);
- while (!((_state)>(0))) {
- rT51next_char(C);
- {int iv1=(C)->_cc;
- if ((48 <= iv1) && (iv1<= 57)) goto l274;
- if ((65 <= iv1) && (iv1<= 90)) goto l274;
- if (95 == iv1) goto l274;
- goto l275;
- l274: ;
- rT69extend((T69*)rT51tmp_name(),(C)->_cc);
- goto l273;
- l275: ;
- if ((97 <= iv1) && (iv1<= 122)) goto l276;
- goto l277;
- l276: ;
- _do_warning=1;
- rT69extend((T69*)rT51tmp_name(),rT3to_upper((C)->_cc));
- goto l273;
- l277: ;
- _state=1;
- l273: ;
- }
- }
- /*IF*/if (rT69isa_keyword((T69*)rT51tmp_name())) {
- _state=rT69count((T69*)rT51tmp_name());
- while (!((_state)==(0))) {
- _state=(_state)-(1);
- rT51prev_char(C);
- }
- }
- else {
- R=1;
- rT51skip_comments(C);
- /*IF*/if (_do_warning) {
- rT51warning(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms182);
- }
- /*FI*/C->_last_class_name=rT69to_class_name((T69*)rT51tmp_name());
- }
- /*FI*/}
- /*FI*/return R;
- }
- int rT51a_base_type(T51 *C){
- int R=0;
- T0 * _sp=NULL;
- R=1;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms183)) {
- {T87 *n=((T87*)new(87));
- rT87make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms187)) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (((rT51skip1(C,'\133'))&&(rT51a_type(C)))&&(rT51skip1(C,'\135'))) {
- {T105 *n=((T105*)new(105));
- rT105make(n,_sp,(C)->_last_type);
- C->_last_base_type=(T0 *)n;}}
- else {
- rT51fcp(C,(T0 *)ms213);
- }
- /*FI*/}
- else if (rT51a_keyword(C,(T0 *)ms189)) {
- {T107 *n=((T107*)new(107));
- rT107make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms191)) {
- {T109 *n=((T109*)new(109));
- rT109make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms198)) {
- {T110 *n=((T110*)new(110));
- rT110make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms194)) {
- {T111 *n=((T111*)new(111));
- rT111make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms185)) {
- {T112 *n=((T112*)new(112));
- rT112make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms186)) {
- {T113 *n=((T113*)new(113));
- rT113make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms196)) {
- {T114 *n=((T114*)new(114));
- rT114make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else if (rT51a_keyword(C,(T0 *)ms188)) {
- {T115 *n=((T115*)new(115));
- rT115make(n,rT51pos((C)->_start_line,(C)->_start_column));
- C->_last_base_type=(T0 *)n;}}
- else {
- R=0;
- }
- /*FI*/return R;
- }
- void rT51a_ascii_code(T51 *C){
- int _counter=0;
- rT51next_char(C);
- _counter=0;
- C->_last_ascii_code=0;
- while (!(((_counter)>(3))||(((C)->_cc)==('\57')))) {
- {int iv1=(C)->_cc;
- if ((48 <= iv1) && (iv1<= 57)) goto l279;
- goto l280;
- l279: ;
- C->_last_ascii_code=(((C)->_last_ascii_code)*(10))+(rT3value((C)->_cc));
- goto l278;
- l280: ;
- rT51fcp(C,(T0 *)ms163);
- l278: ;
- }
- _counter=(_counter)+(1);
- rT51next_char(C);
- }
- /*IF*/if ((_counter)==(0)) {
- rT51fcp(C,(T0 *)ms164);
- }
- else if ((_counter)>(3)) {
- rT51fcp(C,(T0 *)ms165);
- }
- else {
- }
- /*FI*/}
- int rT51a_actual(T51 *C){
- int R=0;
- /*IF*/if (rT51skip1(C,'\44')) {
- /*IF*/if (rT51a_identifier(C)) {
- {T173 *n=((T173*)new(173));
- /*(IRF3*/((n)->_feature_name)=(rT69to_feature_name((T69*)rT51tmp_name()));
- /*)*/C->_last_expression=(T0 *)n;}R=1;
- }
- else {
- rT51fcp(C,(T0 *)ms240);
- }
- /*FI*/}
- else if (rT51a_expression(C)) {
- R=1;
- }
- /*FI*/return R;
- }
- T0 * rT51a_actuals(T51 *C){
- T0 * R=NULL;
- T0* _args=NULL;
- /*IF*/if (rT51skip1(C,'\50')) {
- while (!(!(rT51a_actual(C)))) {
- /*IF*/if (!(_args)) {
- _args=ma(81,0,1,(C)->_last_expression);
- }
- else {
- XrT81add_last(_args,(C)->_last_expression);
- }
- /*FI*/C->_ok=rT51skip1(C,'\54');
- }
- /*IF*/if (!(_args)) {
- rT51wcp(C,(T0 *)ms297);
- }
- else {
- {T170 *n=((T170*)new(170));
- /*(IRF3*/((n)->_list)=(_args);
- /*)*/R=(T0 *)n;}
- }
- /*FI*//*IF*/if (!(rT51skip1(C,'\51'))) {
- rT51fcp(C,(T0 *)ms298);
- }
- /*FI*/}
- /*FI*/return R;
- }
- T0 * rT51a_clients(T51 *C){
- T0 * R=NULL;
- int _state=0;
- T0* _list=NULL;
- T0 * _sp=NULL;
- /*IF*/if (rT51skip1(C,'\173')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- while (!((_state)>(3))) {
- {int iv1=_state;
- if (0 == iv1) goto l282;
- goto l283;
- l282: ;
- /*IF*/if (rT51a_base_class_name(C)) {
- _list=ma(125,0,1,(C)->_last_class_name);
- _state=2;
- }
- else if (rT51skip1(C,'\175')) {
- _state=4;
- }
- else if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms234);
- C->_ok=rT51skip1(C,'\54');
- }
- else {
- _state=3;
- }
- /*FI*/goto l281;
- l283: ;
- if (1 == iv1) goto l284;
- goto l285;
- l284: ;
- /*IF*/if (rT51a_base_class_name(C)) {
- rT125add_last((T125*)_list,(C)->_last_class_name);
- _state=2;
- }
- else if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms234);
- C->_ok=rT51skip1(C,'\54');
- }
- else if (((C)->_cc)==('\175')) {
- rT51wcp(C,(T0 *)ms235);
- C->_ok=rT51skip1(C,'\175');
- _state=4;
- }
- else {
- _state=3;
- }
- /*FI*/goto l281;
- l285: ;
- if (2 == iv1) goto l286;
- goto l287;
- l286: ;
- /*IF*/if (rT51skip1(C,'\54')) {
- _state=1;
- }
- else if (rT51skip1(C,'\175')) {
- _state=4;
- }
- else if (rT51a_base_class_name(C)) {
- rT51warning(((T48*)(C)->_last_class_name)->_start_position,(T0 *)ms217);
- rT125add_last((T125*)_list,(C)->_last_class_name);
- }
- else {
- _state=3;
- }
- /*FI*/goto l281;
- l287: ;
- rT51fcp(C,(T0 *)ms236);
- _state=4;
- l281: ;
- }
- }
- {T123 *n=((T123*)new(123));
- rT123make(n,_sp,_list);
- R=(T0 *)n;}
- }
- else {
- {T123 *n=((T123*)new(123));
- /*(IRF3*//*)*/R=(T0 *)n;}
- }
- /*FI*/return R;
- }
- void rT51go_back(T51 *C,T0 * a1){
- rT51go_back_at(C,((T46*)a1)->_line,((T46*)a1)->_column);
- }
- int rT51a_real_constant(T51 *C){
- int R=0;
- int _old_column=0;
- int _old_line=0;
- _old_line=(C)->_line;
- _old_column=(C)->_column;
- /*IF*/if (rT51skip1(C,'\53')) {
- /*IF*/if (rT51a_real(C)) {
- R=1;
- }
- else {
- rT51go_back_at(C,_old_line,_old_column);
- }
- /*FI*/}
- else if (rT51skip1(C,'\55')) {
- /*IF*/if (rT51a_real(C)) {
- C->_last_real_constant=rT79_px45((T79*)(C)->_last_real_constant);
- R=1;
- }
- else {
- rT51go_back_at(C,_old_line,_old_column);
- }
- /*FI*/}
- else if (rT51a_real(C)) {
- R=1;
- }
- /*FI*/return R;
- }
- int rT51a_real(T51 *C){
- int R=0;
- float _frac_i=0;
- float _frac_part=0;
- int _integral_part=0;
- int _back_count=0;
- int _exponent_sign=0;
- int _exponent=0;
- int _state=0;
- T0* _ts=NULL;
- T0 * _sp=NULL;
- /*IF*/if ((rT3is_digit((C)->_cc))||(((C)->_cc)==('\56'))) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_line,(C)->_column);
- _sp=(T0 *)n;}
- _exponent_sign=1;
- _frac_i=((float)1.);
- /*IF*/if (((C)->_cc)==('\56')) {
- _state=5;
- }
- else {
- _integral_part=rT3value((C)->_cc);
- }
- /*FI*/while (!((_state)>(11))) {
- rT51next_char(C);
- _back_count=(_back_count)+(1);
- {int iv1=_state;
- if (0 == iv1) goto l289;
- goto l290;
- l289: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l292;
- goto l293;
- l292: ;
- _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
- goto l291;
- l293: ;
- if (46 == iv2) goto l294;
- goto l295;
- l294: ;
- _state=4;
- goto l291;
- l295: ;
- _state=13;
- l291: ;
- }
- goto l288;
- l290: ;
- if (1 == iv1) goto l296;
- goto l297;
- l296: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l299;
- goto l300;
- l299: ;
- _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
- _state=2;
- goto l298;
- l300: ;
- rT51fcp(C,(T0 *)ms171);
- l298: ;
- }
- goto l288;
- l297: ;
- if (2 == iv1) goto l301;
- goto l302;
- l301: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l304;
- goto l305;
- l304: ;
- _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
- _state=3;
- goto l303;
- l305: ;
- rT51fcp(C,(T0 *)ms171);
- l303: ;
- }
- goto l288;
- l302: ;
- if (3 == iv1) goto l306;
- goto l307;
- l306: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l309;
- goto l310;
- l309: ;
- _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
- _state=0;
- goto l308;
- l310: ;
- rT51fcp(C,(T0 *)ms171);
- l308: ;
- }
- goto l288;
- l307: ;
- if (4 == iv1) goto l311;
- goto l312;
- l311: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l314;
- goto l315;
- l314: ;
- _frac_i=((float)10.);
- _frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
- _state=6;
- goto l313;
- l315: ;
- if (69 == iv2) goto l316;
- if (101 == iv2) goto l316;
- goto l317;
- l316: ;
- _state=10;
- goto l313;
- l317: ;
- _state=12;
- l313: ;
- }
- goto l288;
- l312: ;
- if (5 == iv1) goto l318;
- goto l319;
- l318: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l321;
- goto l322;
- l321: ;
- _frac_i=((float)10.);
- _frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
- _state=6;
- goto l320;
- l322: ;
- _state=13;
- l320: ;
- }
- goto l288;
- l319: ;
- if (6 == iv1) goto l323;
- goto l324;
- l323: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l326;
- goto l327;
- l326: ;
- _frac_i=(_frac_i)*(((float)10.));
- _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
- goto l325;
- l327: ;
- if (69 == iv2) goto l328;
- if (101 == iv2) goto l328;
- goto l329;
- l328: ;
- _state=10;
- goto l325;
- l329: ;
- if (95 == iv2) goto l330;
- goto l331;
- l330: ;
- _state=7;
- goto l325;
- l331: ;
- _state=12;
- l325: ;
- }
- goto l288;
- l324: ;
- if (7 == iv1) goto l332;
- goto l333;
- l332: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l335;
- goto l336;
- l335: ;
- _frac_i=(_frac_i)*(((float)10.));
- _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
- _state=8;
- goto l334;
- l336: ;
- rT51fcp(C,(T0 *)ms172);
- l334: ;
- }
- goto l288;
- l333: ;
- if (8 == iv1) goto l337;
- goto l338;
- l337: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l340;
- goto l341;
- l340: ;
- _frac_i=(_frac_i)*(((float)10.));
- _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
- _state=9;
- goto l339;
- l341: ;
- rT51fcp(C,(T0 *)ms172);
- l339: ;
- }
- goto l288;
- l338: ;
- if (9 == iv1) goto l342;
- goto l343;
- l342: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l345;
- goto l346;
- l345: ;
- _frac_i=(_frac_i)*(((float)10.));
- _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
- _state=6;
- goto l344;
- l346: ;
- rT51fcp(C,(T0 *)ms172);
- l344: ;
- }
- goto l288;
- l343: ;
- if (10 == iv1) goto l347;
- goto l348;
- l347: ;
- {int iv2=(C)->_cc;
- if (43 == iv2) goto l350;
- goto l351;
- l350: ;
- _state=11;
- goto l349;
- l351: ;
- if (45 == iv2) goto l352;
- goto l353;
- l352: ;
- _exponent_sign=-(1);
- _state=11;
- goto l349;
- l353: ;
- if ((48 <= iv2) && (iv2<= 57)) goto l354;
- goto l355;
- l354: ;
- _exponent=rT3value((C)->_cc);
- _state=11;
- goto l349;
- l355: ;
- rT51fcp(C,(T0 *)ms173);
- _state=13;
- l349: ;
- }
- goto l288;
- l348: ;
- {int iv2=(C)->_cc;
- if ((48 <= iv2) && (iv2<= 57)) goto l357;
- goto l358;
- l357: ;
- _exponent=((_exponent)*(10))+(rT3value((C)->_cc));
- goto l356;
- l358: ;
- _state=12;
- l356: ;
- }
- l288: ;
- }
- }
- /*IF*/if ((_state)==(12)) {
- _ts=rT7substring((T7*)(C)->_current_line,((T46*)_sp)->_column,((C)->_column)-(1));
- {T79 *n=((T79*)new(79));
- rT79make(n,_sp,_ts,_integral_part,_frac_part,(_exponent)*(_exponent_sign));
- C->_last_real_constant=(T0 *)n;}
- R=1;
- rT51skip_comments(C);
- }
- else {
- while (!((_back_count)==(0))) {
- _back_count=(_back_count)-(1);
- rT51prev_char(C);
- }
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51go_back_at(T51 *C,int a1,int a2){
- C->_line=a1;
- C->_column=a2;
- C->_current_line=(/*UT*/(T60*)oRBC51text,
- rT60item((C)->_line));
- /*IF*/if (((C)->_column)==((((T7*)(C)->_current_line)->_count)+(1))) {
- C->_cc='\12';
- }
- else if (((C)->_column)==(0)) {
- C->_cc='\0';
- }
- else {
- C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
- }
- /*FI*/}
- int rT51a_binary(T51 *C,T0 * a1){
- int R=0;
- R=1;
- /*IF*/if (rT51skip2(C,'\74','\75')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms92,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip2(C,'\76','\75')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms93,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip2(C,'\57','\57')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms94,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip2(C,'\134','\134')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms95,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip1(C,'\53')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms86,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip1(C,'\55')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms87,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip1(C,'\52')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms96,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip1(C,'\57')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms97,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip1(C,'\76')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms98,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip1(C,'\74')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms99,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51skip1(C,'\136')) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms100,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51a_keyword(C,(T0 *)ms101)) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms101,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51a_keyword(C,(T0 *)ms102)) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms102,a1);
- C->_last_binary=(T0 *)n;}
- }
- else if (rT51a_keyword(C,(T0 *)ms103)) {
- /*IF*/if (rT51a_keyword(C,(T0 *)ms104)) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms105,a1);
- C->_last_binary=(T0 *)n;}
- }
- else {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms103,a1);
- C->_last_binary=(T0 *)n;}
- }
- /*FI*/}
- else if (rT51a_keyword(C,(T0 *)ms106)) {
- /*IF*/if (rT51a_keyword(C,(T0 *)ms107)) {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms108,a1);
- C->_last_binary=(T0 *)n;}
- }
- else {
- {T70 *n=((T70*)new(70));
- rT70make(n,(T0 *)ms106,a1);
- C->_last_binary=(T0 *)n;}
- }
- /*FI*/}
- else {
- C->_last_binary=NULL;
- R=0;
- }
- /*FI*/return R;
- }
- int rT51a_creation(T51 *C){
- int R=0;
- int _state=0;
- T0 * _call=NULL;
- T0 * _proc_name=NULL;
- T0 * _writable=NULL;
- T0 * _type=NULL;
- T0 * _sp=NULL;
- while (!((_state)>(6))) {
- {int iv1=_state;
- if (0 == iv1) goto l360;
- goto l361;
- l360: ;
- /*IF*/if (rT51skip1(C,'\41')) {
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- _state=1;
- }
- else {
- _state=7;
- }
- /*FI*/goto l359;
- l361: ;
- if (1 == iv1) goto l362;
- goto l363;
- l362: ;
- /*IF*/if (rT51a_type(C)) {
- _type=(C)->_last_type;
- /*IF*/if (XrT58is_anchored(_type)) {
- rT51warning(XrT58start_position(_type),(T0 *)ms383);
- }
- /*FI*/_state=2;
- }
- else if (rT51skip1(C,'\41')) {
- _state=3;
- }
- else {
- rT51fcp(C,(T0 *)ms384);
- _state=8;
- }
- /*FI*/goto l359;
- l363: ;
- if (2 == iv1) goto l364;
- goto l365;
- l364: ;
- /*IF*/if (rT51skip1(C,'\41')) {
- _state=3;
- }
- else {
- _state=8;
- rT51fcp(C,(T0 *)ms385);
- }
- /*FI*/goto l359;
- l365: ;
- if (3 == iv1) goto l366;
- goto l367;
- l366: ;
- /*IF*/if (rT51a_identifier(C)) {
- /*IF*/if (rT51a_current(C)) {
- _state=8;
- rT51error(XrT68start_position((C)->_last_expression),(T0 *)ms386);
- }
- else if (rT51a_argument(C)) {
- _state=8;
- rT51error(XrT68start_position((C)->_last_expression),(T0 *)ms387);
- }
- else if ((rT51a_result(C))||(rT51a_local_variable(C))) {
- _writable=(C)->_last_expression;
- _state=4;
- }
- else {
- _writable=rT69to_feature_name((T69*)rT51tmp_name());
- _state=4;
- }
- /*FI*/}
- else {
- _state=8;
- rT51fcp(C,(T0 *)ms388);
- }
- /*FI*/goto l359;
- l367: ;
- if (4 == iv1) goto l368;
- goto l369;
- l368: ;
- /*IF*/if (rT51skip1unless2(C,'\56','\56')) {
- _state=5;
- }
- else {
- _state=7;
- }
- /*FI*/goto l359;
- l369: ;
- if (5 == iv1) goto l370;
- goto l371;
- l370: ;
- /*IF*/if (rT51a_identifier(C)) {
- _proc_name=rT69to_feature_name((T69*)rT51tmp_name());
- _state=6;
- }
- else {
- _state=8;
- rT51fcp(C,(T0 *)ms389);
- }
- /*FI*/goto l359;
- l371: ;
- /*IF*/if (((C)->_cc)==('\50')) {
- _call=rT51to_proc_call(C,_writable,_proc_name,rT51a_actuals(C));
- }
- else {
- {T178 *n=((T178*)new(178));
- rT178make(n,_writable,_proc_name);
- _call=(T0 *)n;}}
- /*FI*/_state=7;
- l359: ;
- }
- }
- /*IF*/if (((_state)==(7))&&(((int)_sp))) {
- R=1;
- /*IF*/if ((!(_type))&&(!(_call))) {
- {T240 *n=((T240*)new(240));
- rT240make(n,_sp,_writable);
- C->_last_instruction=(T0 *)n;}}
- else if ((((int)_type))&&(!(_call))) {
- {T243 *n=((T243*)new(243));
- rT243make(n,_sp,_type,_writable);
- C->_last_instruction=(T0 *)n;}}
- else if ((!(_type))&&(((int)_call))) {
- {T245 *n=((T245*)new(245));
- rT245make(n,_sp,_writable,_call);
- C->_last_instruction=(T0 *)n;}}
- else {
- {T247 *n=((T247*)new(247));
- rT247make(n,_sp,_type,_writable,_call);
- C->_last_instruction=(T0 *)n;}}
- /*FI*/}
- /*FI*/return R;
- }
- void rT51a_creation_clause(T51 *C){
- T0 * _creation_clause=NULL;
- T0* _list=NULL;
- T0 * _comments=NULL;
- T0 * _clients=NULL;
- _clients=rT51a_clients(C);
- _comments=rT51get_comments(C);
- /*IF*/if (rT51a_feature_list(C)) {
- _list=(C)->_last_feature_list;
- {T132 *n=((T132*)new(132));
- rT132make(n,_clients,_comments,_list);
- _creation_clause=(T0 *)n;}
- rT50add_creation_clause((T50*)(C)->_last_base_class,_creation_clause);
- }
- else {
- /*IF*/if ((((int)_comments))||(((int)_clients))) {
- /*IF*/if (((int)_comments)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(((T59*)_comments)->_start_position);
- }
- /*FI*//*IF*/if (((int)_clients)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(((T123*)_clients)->_start_position);
- }
- /*FI*/rT45warning((T45*)oRBC27eh,(T0 *)ms252);
- }
- /*FI*/}
- /*FI*/}
- int rT51a_argument(T51 *C){
- int R=0;
- int _rank=0;
- /*IF*/if (((int)(C)->_arguments)) {
- _rank=rT92rank_of((T92*)(C)->_arguments,rT51tmp_name());
- /*IF*/if ((_rank)>(0)) {
- C->_last_expression=rT69to_argument_name((T69*)rT51tmp_name(),(C)->_arguments,_rank);
- R=1;
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT51a_after_a_dot(T51 *C,int a1,T0 * a2){
- T0 * _eal=NULL;
- T0 * _fn=NULL;
- /*IF*/if (rT51a_identifier(C)) {
- /*IF*/if (((rT51a_result(C))||(rT51a_void(C)))||(rT51a_current(C))) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT68start_position((C)->_last_expression));
- rT45error((T45*)oRBC27eh,(T0 *)ms296);
- }
- /*FI*/_fn=rT69to_feature_name((T69*)rT51tmp_name());
- _eal=rT51a_actuals(C);
- rT51a_r10(C,a1,a2,_fn,_eal);
- }
- else {
- rT51fcp(C,(T0 *)ms299);
- }
- /*FI*/}
- void rT51a_redefine_list(T51 *C){
- /*IF*/if (rT51a_feature_list(C)) {
- rT118set_redefine((T118*)(C)->_last_parent,(C)->_last_feature_list);
- }
- /*FI*/}
- int rT51a_index_clause(T51 *C){
- int R=0;
- T0 * _index_clause=NULL;
- /*IF*/if (rT51a_feature_name(C)) {
- R=1;
- /*IF*/if (rT51skip1(C,'\72')) {
- {T65 *n=((T65*)new(65));
- /*(IRF3*/((n)->_index)=(XrT67to_string((C)->_last_feature_name));
- /*)*/_index_clause=(T0 *)n;}
- /*IF*/if (rT51a_index_value(C)) {
- rT65add_index_value((T65*)_index_clause,(C)->_last_index_value);
- }
- else {
- rT51fcp(C,(T0 *)ms176);
- }
- /*FI*/}
- else {
- {T65 *n=((T65*)new(65));
- /*(IRF3*/((n)->_index)=(NULL);
- /*)*/_index_clause=(T0 *)n;}
- rT65add_index_value((T65*)_index_clause,(C)->_last_feature_name);
- }
- /*FI*/}
- else if (rT51a_manifest_constant(C)) {
- R=1;
- {T65 *n=((T65*)new(65));
- /*(IRF3*/((n)->_index)=(NULL);
- /*)*/_index_clause=(T0 *)n;}
- rT65add_index_value((T65*)_index_clause,(C)->_last_manifest_constant);
- }
- /*FI*//*IF*/if (R) {
- while (!(!(rT51skip1(C,'\54')))) {
- /*IF*/if (rT51a_index_value(C)) {
- rT65add_index_value((T65*)_index_clause,(C)->_last_index_value);
- }
- else {
- rT51fcp(C,(T0 *)ms176);
- }
- /*FI*/}
- rT50add_index_clause((T50*)(C)->_last_base_class,_index_clause);
- }
- /*FI*/return R;
- }
- void rT51a_index_list(T51 *C){
- while (!(!(rT51a_index_clause(C)))) {
- C->_ok=rT51skip1(C,'\73');
- }
- }
- void rT51a_indexing(T51 *C){
- /*IF*/if (rT51a_keyword(C,(T0 *)ms80)) {
- rT51a_index_list(C);
- }
- /*FI*/}
- int rT51a_index_value(T51 *C){
- int R=0;
- /*IF*/if (rT51a_feature_name(C)) {
- C->_last_index_value=(C)->_last_feature_name;
- R=1;
- }
- else if (rT51a_manifest_constant(C)) {
- C->_last_index_value=(C)->_last_manifest_constant;
- R=1;
- }
- /*FI*/return R;
- }
- int rT51a_tag_mark(T51 *C){
- int R=0;
- /*IF*/if (rT51a_identifier(C)) {
- /*IF*/if (rT51skip1unless2(C,'\72','\75')) {
- R=1;
- C->_last_tag_mark=rT69to_tag_name((T69*)rT51tmp_name());
- }
- else {
- C->_last_tag_mark=NULL;
- rT51go_back_at(C,((T69*)rT51tmp_name())->_li,((T69*)rT51tmp_name())->_co);
- }
- /*FI*/}
- else {
- C->_last_tag_mark=NULL;
- }
- /*FI*/return R;
- }
- int rT51a_manifest_constant(T51 *C){
- int R=0;
- /*IF*/if (rT51a_boolean_constant(C)) {
- C->_last_manifest_constant=(C)->_last_boolean_constant;
- R=1;
- }
- else if (rT51a_character_constant(C)) {
- C->_last_manifest_constant=(C)->_last_character_constant;
- R=1;
- }
- else if (rT51a_manifest_string(C)) {
- C->_last_manifest_constant=(C)->_last_manifest_string;
- R=1;
- }
- else if (rT51a_bit_constant(C)) {
- C->_last_manifest_constant=(C)->_last_bit_constant;
- R=1;
- }
- else if (rT51a_real_constant(C)) {
- C->_last_manifest_constant=(C)->_last_real_constant;
- R=1;
- }
- else if (rT51a_integer_constant(C)) {
- C->_last_manifest_constant=(C)->_last_integer_constant;
- R=1;
- }
- /*FI*/return R;
- }
- int rT51a_manifest_string(T51 *C){
- int R=0;
- int _state=0;
- /*IF*/if (((C)->_cc)==('\42')) {
- R=1;
- {T76 *n=((T76*)new(76));
- rT76make(n,rT51pos((C)->_line,(C)->_column));
- C->_last_manifest_string=(T0 *)n;}
- while (!((_state)>(3))) {
- rT51next_char(C);
- {int iv1=_state;
- if (0 == iv1) goto l373;
- goto l374;
- l373: ;
- {int iv2=(C)->_cc;
- if (10 == iv2) goto l376;
- goto l377;
- l376: ;
- rT51fcp(C,(T0 *)ms167);
- goto l375;
- l377: ;
- if (34 == iv2) goto l378;
- goto l379;
- l378: ;
- _state=4;
- goto l375;
- l379: ;
- if (37 == iv2) goto l380;
- goto l381;
- l380: ;
- _state=1;
- goto l375;
- l381: ;
- rT76add((T76*)(C)->_last_manifest_string,(C)->_cc);
- l375: ;
- }
- goto l372;
- l374: ;
- if (1 == iv1) goto l382;
- goto l383;
- l382: ;
- _state=0;
- {int iv2=(C)->_cc;
- if (10 == iv2) goto l385;
- goto l386;
- l385: ;
- _state=3;
- goto l384;
- l386: ;
- if (65 == iv2) goto l387;
- goto l388;
- l387: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\100');
- goto l384;
- l388: ;
- if (66 == iv2) goto l389;
- goto l390;
- l389: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\10');
- goto l384;
- l390: ;
- if (67 == iv2) goto l391;
- goto l392;
- l391: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\136');
- goto l384;
- l392: ;
- if (68 == iv2) goto l393;
- goto l394;
- l393: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\44');
- goto l384;
- l394: ;
- if (70 == iv2) goto l395;
- goto l396;
- l395: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\14');
- goto l384;
- l396: ;
- if (72 == iv2) goto l397;
- goto l398;
- l397: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\134');
- goto l384;
- l398: ;
- if (76 == iv2) goto l399;
- goto l400;
- l399: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\176');
- goto l384;
- l400: ;
- if (78 == iv2) goto l401;
- goto l402;
- l401: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\12');
- goto l384;
- l402: ;
- if (81 == iv2) goto l403;
- goto l404;
- l403: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\140');
- goto l384;
- l404: ;
- if (82 == iv2) goto l405;
- goto l406;
- l405: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\15');
- goto l384;
- l406: ;
- if (83 == iv2) goto l407;
- goto l408;
- l407: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\43');
- goto l384;
- l408: ;
- if (84 == iv2) goto l409;
- goto l410;
- l409: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\11');
- goto l384;
- l410: ;
- if (85 == iv2) goto l411;
- goto l412;
- l411: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\0');
- goto l384;
- l412: ;
- if (86 == iv2) goto l413;
- goto l414;
- l413: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\174');
- goto l384;
- l414: ;
- if (37 == iv2) goto l415;
- goto l416;
- l415: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\45');
- goto l384;
- l416: ;
- if (39 == iv2) goto l417;
- goto l418;
- l417: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\47');
- goto l384;
- l418: ;
- if (34 == iv2) goto l419;
- goto l420;
- l419: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\42');
- goto l384;
- l420: ;
- if (40 == iv2) goto l421;
- goto l422;
- l421: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\133');
- goto l384;
- l422: ;
- if (41 == iv2) goto l423;
- goto l424;
- l423: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\135');
- goto l384;
- l424: ;
- if (60 == iv2) goto l425;
- goto l426;
- l425: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\173');
- goto l384;
- l426: ;
- if (62 == iv2) goto l427;
- goto l428;
- l427: ;
- rT76add_percent((T76*)(C)->_last_manifest_string,'\175');
- goto l384;
- l428: ;
- if (47 == iv2) goto l429;
- goto l430;
- l429: ;
- rT51a_ascii_code(C);
- rT76add_ascii((T76*)(C)->_last_manifest_string,(C)->_last_ascii_code);
- goto l384;
- l430: ;
- if (9 == iv2) goto l431;
- if (32 == iv2) goto l431;
- goto l432;
- l431: ;
- _state=2;
- goto l384;
- l432: ;
- rT51fcp(C,(T0 *)ms168);
- _state=0;
- l384: ;
- }
- goto l372;
- l383: ;
- if (2 == iv1) goto l433;
- goto l434;
- l433: ;
- {int iv2=(C)->_cc;
- if (10 == iv2) goto l436;
- goto l437;
- l436: ;
- _state=3;
- goto l435;
- l437: ;
- if (9 == iv2) goto l438;
- if (32 == iv2) goto l438;
- goto l439;
- l438: ;
- goto l435;
- l439: ;
- rT51fcp(C,(T0 *)ms169);
- l435: ;
- }
- goto l372;
- l434: ;
- {int iv2=(C)->_cc;
- if (9 == iv2) goto l441;
- if (32 == iv2) goto l441;
- goto l442;
- l441: ;
- goto l440;
- l442: ;
- if (37 == iv2) goto l443;
- goto l444;
- l443: ;
- rT76break_line((T76*)(C)->_last_manifest_string);
- _state=0;
- goto l440;
- l444: ;
- if (10 == iv2) goto l445;
- goto l446;
- l445: ;
- rT51fcp(C,(T0 *)ms167);
- _state=0;
- goto l440;
- l446: ;
- rT51fcp(C,(T0 *)ms170);
- _state=0;
- l440: ;
- }
- l372: ;
- }
- }
- rT51next_char(C);
- rT51skip_comments(C);
- }
- /*FI*/return R;
- }
- int rT51a_infix(T51 *C){
- int R=0;
- T0 * _sp=NULL;
- /*IF*/if (rT51a_keyword(C,(T0 *)ms90)) {
- R=1;
- {T46 *n=((T46*)new(46));
- rT46make(n,(C)->_start_line,(C)->_start_column);
- _sp=(T0 *)n;}
- /*IF*/if (((C)->_cc)==('\42')) {
- rT51next_char(C);
- }
- else {
- rT51wcp(C,(T0 *)ms91);
- }
- /*FI*//*IF*/if (rT51a_binary(C,_sp)) {
- C->_last_infix=(C)->_last_binary;
- }
- else if (rT51a_free_operator(C)) {
- C->_last_infix=rT69to_infix_name((T69*)rT51tmp_operator(),_sp);
- }
- else {
- rT51fcp(C,(T0 *)ms109);
- }
- /*FI*//*IF*/if (!(rT51skip1(C,'\42'))) {
- rT51wcp(C,(T0 *)ms110);
- }
- /*FI*/}
- /*FI*/return R;
- }
- int rT51a_free_operator(T51 *C){
- int R=0;
- /*IF*/if ((((((C)->_cc)==('\100'))||(((C)->_cc)==('\43')))||(((C)->_cc)==('\174')))||(((C)->_cc)==('\46'))) {
- R=1;
- rT69make((T69*)rT51tmp_operator(),(C)->_line,(C)->_column);
- rT69extend((T69*)rT51tmp_operator(),(C)->_cc);
- rT51next_char(C);
- while (!((((((C)->_cc)==('\12'))||(((C)->_cc)==('\40')))||(((C)->_cc)==('\11')))||(((C)->_cc)==('\42')))) {
- rT69extend((T69*)rT51tmp_operator(),(C)->_cc);
- rT51next_char(C);
- }
- rT51skip_comments(C);
- }
- /*FI*/return R;
- }
- void rT51a_local_var_list(T51 *C,T0 * a1){
- int _state=0;
- int _rank=0;
- T0* _list=NULL;
- T0 * _declaration=NULL;
- T0* _name_list=NULL;
- T0 * _name=NULL;
- while (!((_state)>(4))) {
- {int iv1=_state;
- if (0 == iv1) goto l448;
- goto l449;
- l448: ;
- /*IF*/if (rT51a_identifier(C)) {
- _name=rT69to_decl_name((T69*)rT51tmp_name());
- _state=1;
- /*IF*/if (((int)(C)->_arguments)) {
- _rank=rT92rank_of((T92*)(C)->_arguments,_name);
- /*IF*/if ((_rank)>(0)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(((T97*)_name)->_start_position);
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT49start_position(rT92name((T92*)(C)->_arguments,_rank)));
- rT45error((T45*)oRBC27eh,(T0 *)ms328);
- }
- /*FI*/}
- /*FI*/}
- else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\73'))) {
- rT51wcp(C,(T0 *)ms258);
- C->_ok=(rT51skip1(C,'\54'))||(rT51skip1(C,'\73'));
- }
- else {
- _state=5;
- }
- /*FI*/goto l447;
- l449: ;
- if (1 == iv1) goto l450;
- goto l451;
- l450: ;
- /*IF*/if (rT51skip1(C,'\72')) {
- /*IF*/if (((int)_name_list)) {
- rT141add_last((T141*)_name_list,_name);
- _name=NULL;
- }
- /*FI*/_state=3;
- }
- else {
- /*IF*/if (((C)->_cc)==('\73')) {
- rT51wcp(C,(T0 *)ms329);
- C->_ok=rT51skip1(C,'\73');
- }
- else {
- C->_ok=rT51skip1(C,'\54');
- }
- /*FI*//*IF*/if (!(_name_list)) {
- _name_list=ma(141,0,1,_name);
- }
- else {
- rT141add_last((T141*)_name_list,_name);
- }
- /*FI*/_name=NULL;
- _state=2;
- }
- /*FI*/goto l447;
- l451: ;
- if (2 == iv1) goto l452;
- goto l453;
- l452: ;
- /*IF*/if (rT51a_identifier(C)) {
- _name=rT69to_decl_name((T69*)rT51tmp_name());
- _state=1;
- /*IF*/if (((int)(C)->_arguments)) {
- _rank=rT92rank_of((T92*)(C)->_arguments,_name);
- /*IF*/if ((_rank)>(0)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(((T97*)_name)->_start_position);
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT49start_position(rT92name((T92*)(C)->_arguments,_rank)));
- rT45error((T45*)oRBC27eh,(T0 *)ms330);
- }
- /*FI*/}
- /*FI*/}
- else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\73'))) {
- rT51wcp(C,(T0 *)ms258);
- C->_ok=(rT51skip1(C,'\54'))||(rT51skip1(C,'\73'));
- }
- else {
- _state=6;
- }
- /*FI*/goto l447;
- l453: ;
- if (3 == iv1) goto l454;
- goto l455;
- l454: ;
- /*IF*/if (rT51a_type(C)) {
- /*IF*/if (((int)_name_list)) {
- {T142 *n=((T142*)new(142));
- rT142make(n,_name_list,(C)->_last_type);
- _declaration=(T0 *)n;}_name_list=NULL;
- }
- else {
- {T94 *n=((T94*)new(94));
- rT94make(n,_name,(C)->_last_type);
- _declaration=(T0 *)n;}_name=NULL;
- }
- /*FI*//*IF*/if (!(_list)) {
- _list=ma(143,0,1,_declaration);
- }
- else {
- XrT143add_last(_list,_declaration);
- }
- /*FI*/_state=4;
- }
- else {
- _state=6;
- }
- /*FI*/goto l447;
- l455: ;
- /*IF*/if (((C)->_cc)==('\54')) {
- rT51wcp(C,(T0 *)ms331);
- C->_ok=rT51skip1(C,'\54');
- _state=0;
- }
- else {
- C->_ok=rT51skip1(C,'\73');
- _state=0;
- }
- /*FI*/ l447: ;
- }
- }
- /*IF*/if ((_state)==(6)) {
- rT51fcp(C,(T0 *)ms332);
- }
- else if (((int)_list)) {
- {T139 *n=((T139*)new(139));
- rT139make(n,a1,_list);
- C->_local_vars=(T0 *)n;}
- /*(IRF3*/(((T136*)oRBC51tmp_feature)->_local_vars)=((C)->_local_vars);
- /*)*/}
- /*FI*/}
- int rT51a_local_variable(T51 *C){
- int R=0;
- int _rank=0;
- /*IF*/if (((int)(C)->_local_vars)) {
- _rank=rT139rank_of((T139*)(C)->_local_vars,rT51tmp_name());
- /*IF*/if ((_rank)>(0)) {
- C->_last_expression=rT69to_local_name((T69*)rT51tmp_name(),(C)->_local_vars,_rank);
- R=1;
- }
- /*FI*/}
- /*FI*/return R;
- }
- T0 * rT51a_compound2(T51 *C,T0* a1,T0* a2){
- T0 * R=NULL;
- T0 * _instruction=NULL;
- T0* _list=NULL;
- T0 * _hc=NULL;
- _hc=rT51get_comments(C);
- while (!(((C)->_cc)!=('\73'))) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- }
- while (!((!(rT51a_instruction(C)))||((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)>(10)))) {
- _instruction=(C)->_last_instruction;
- /*IF*/if (((C)->_cc)==('\50')) {
- rT51wcp(C,(T0 *)ms242);
- }
- /*FI*/C->_ok=rT51skip1(C,'\73');
- while (!(((C)->_cc)!=('\73'))) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- }
- /*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- /*IF*/if (!(_list)) {
- _list=ma(217,0,1,XrT176add_comment(_instruction,rT51get_comments(C)));
- }
- else {
- rT217add_last((T217*)_list,XrT176add_comment(_instruction,rT51get_comments(C)));
- }
- /*FI*/}
- /*FI*/}
- /*IF*/if (!(rT51a_keyword(C,a2))) {
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms349);
- /*UT*/(T45*)oRBC27eh;
- rT45append(a1);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms350);
- /*UT*/(T45*)oRBC27eh;
- rT45append(a2);
- rT51fcp(C,(T0 *)ms351);
- }
- /*FI*//*IF*/if ((((int)_hc))||(((int)_list))) {
- {T140 *n=((T140*)new(140));
- rT140make(n,_hc,_list);
- R=(T0 *)n;}
- }
- /*FI*/return R;
- }
- T0 * rT51a_compound1(T51 *C,T0* a1){
- T0 * R=NULL;
- T0 * _instruction=NULL;
- T0* _list=NULL;
- T0 * _hc=NULL;
- _hc=rT51get_comments(C);
- while (!(((C)->_cc)!=('\73'))) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- }
- while (!((!(rT51a_instruction(C)))||((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)>(10)))) {
- _instruction=(C)->_last_instruction;
- /*IF*/if (((C)->_cc)==('\50')) {
- rT51wcp(C,(T0 *)ms242);
- }
- /*FI*/C->_ok=rT51skip1(C,'\73');
- while (!(((C)->_cc)!=('\73'))) {
- rT51wcp(C,(T0 *)ms238);
- C->_ok=rT51skip1(C,'\73');
- }
- /*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- /*IF*/if (!(_list)) {
- _list=ma(217,0,1,XrT176add_comment(_instruction,rT51get_comments(C)));
- }
- else {
- rT217add_last((T217*)_list,XrT176add_comment(_instruction,rT51get_comments(C)));
- }
- /*FI*/}
- /*FI*/}
- /*IF*/if ((((int)_hc))||(((int)_list))) {
- {T140 *n=((T140*)new(140));
- rT140make(n,_hc,_list);
- R=(T0 *)n;}
- }
- /*FI*/return R;
- }
- int rT51a_bit_constant(T51 *C){
- int R=0;
- T0* _sequence=NULL;
- int _state=0;
- /*IF*/if ((((C)->_cc)==('0'))||(((C)->_cc)==('1'))) {
- {T7 *n=((T7*)new(7));
- rT7make(n,16);
- _sequence=(T0 *)n;}
- rT7extend((T7*)_sequence,(C)->_cc);
- while (!((_state)>(0))) {
- rT51next_char(C);
- {int iv1=(C)->_cc;
- if ((48 <= iv1) && (iv1<= 49)) goto l457;
- goto l458;
- l457: ;
- rT7extend((T7*)_sequence,(C)->_cc);
- goto l456;
- l458: ;
- if (66 == iv1) goto l459;
- if (98 == iv1) goto l459;
- goto l460;
- l459: ;
- {T77 *n=((T77*)new(77));
- /*(IRF3*/((n)->_value)=(_sequence);
- /*)*/C->_last_bit_constant=(T0 *)n;}
- rT51next_char(C);
- rT51skip_comments(C);
- _state=1;
- R=1;
- goto l456;
- l460: ;
- _state=((T7*)_sequence)->_count;
- while (!((_state)==(0))) {
- _state=(_state)-(1);
- rT51prev_char(C);
- }
- _state=2;
- l456: ;
- }
- }
- }
- /*FI*/return R;
- }
- int rT44invariant_check(T44 *C){
- int R=0;
- R=((C)->_level)>=(-2);
- return R;
- }
- int rT44require_check(T44 *C){
- int R=0;
- R=((C)->_level)>=(-4);
- return R;
- }
- int rT44boost(T44 *C){
- int R=0;
- R=((C)->_level)==(-6);
- return R;
- }
- int rT44no_check(T44 *C){
- int R=0;
- R=((C)->_level)>=(-5);
- return R;
- }
- void rT44set_all_check(T44 *C){
- C->_level=0;
- }
- int rT44ensure_check(T44 *C){
- int R=0;
- R=((C)->_level)>=(-3);
- return R;
- }
- void rT44set_boost(T44 *C){
- C->_level=-6;
- }
- void rT44set_debug_check(T44 *C){
- C->_level=1;
- }
- void rT44set_ensure_check(T44 *C){
- C->_level=-3;
- }
- void rT44set_invariant_check(T44 *C){
- C->_level=-2;
- }
- void rT44set_loop_check(T44 *C){
- C->_level=-1;
- }
- int rT44loop_check(T44 *C){
- int R=0;
- R=((C)->_level)>=(-1);
- return R;
- }
- void rT44set_no_check(T44 *C){
- C->_level=-5;
- }
- void rT44copy(T44 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
-